Share via


CREATE SPATIAL INDEX (Transact-SQL)

Cria um índice espacial em tabelas e colunas especificadas. Um índice pode ser criado antes que haja dados na tabela. Podem ser criados índices em tabelas ou exibições em outro banco de dados mediante a especificação de um nome de banco de dados qualificado. Índices espaciais exigem que a tabela tenha uma chave primária clusterizada.

ObservaçãoObservação

Para obter informações sobre índices espaciais, consulte Visão geral de índices espaciais.

Ícone de vínculo de tópico Convenções de sintaxe Transact-SQL

Sintaxe

Create Spatial Index 
CREATE SPATIAL INDEX index_name 
  ON <object> ( spatial_column_name )
    {
       <geometry_tessellation> | <geography_tessellation>
    } 
  [ ON { filegroup_name | "default" } ]
; 

<object> ::=
    [ database_name. [ schema_name ] . | schema_name. ] 
        table_name 

<geometry_tessellation> ::=
{ 
  <geometry_automatic_grid_tessellation> | <geometry_manual_grid_tessellation> 
}

<geometry_automatic_grid_tessellation> ::=
{
    [ USING GEOMETRY_AUTO_GRID ]
          WITH  (
        <bounding_box>
            [ [,] <tessellation_cells_per_object> [ ,…n] ]
            [ [,] <spatial_index_option> [ ,…n] ]
    )
}

<geometry_manual_grid_tessellation> ::=
{
       [ USING GEOMETRY_GRID ]
         WITH (
                    <bounding_box>
                        [ [,]<tessellation_grid> [ ,…n] ]
                        [ [,]<tessellation_cells_per_object> [ ,…n] ]
                        [ [,]<spatial_index_option> [ ,…n] ]
   )
} 

<geography_tessellation> ::=
{
      <geography_automatic_grid_tessellation> | <geography_manual_grid_tessellation>
}

<geography_automatic_grid_tessellation> ::=
{
    [ USING GEOGRAPHY_AUTO_GRID ]
    [ WITH (
        [ [,] <tessellation_cells_per_object> [ ,…n] ]
        [ [,] <spatial_index_option> ]
     ) ]
}

<geography_manual_grid_tessellation> ::=
{
    [ USING GEOGRAPHY_GRID ]
    [ WITH (
                [ <tessellation_grid> [ ,…n] ]
                [ [,] <tessellation_cells_per_object> [ ,…n] ]
                [ [,] <spatial_index_option> [ ,…n] ]
                ) ]
}


<bounding_box> ::=
{
      BOUNDING_BOX = ( {
       xmin, ymin, xmax, ymax 
       | <named_bb_coordinate>, <named_bb_coordinate>, <named_bb_coordinate>, <named_bb_coordinate> 
  } )
}

<named_bb_coordinate> ::= { XMIN = xmin | YMIN = ymin | XMAX = xmax | YMAX=ymax }

<tesselation_grid> ::=
{ 
    GRIDS = ( { <grid_level> [ ,...n ] | <grid_size>, <grid_size>, <grid_size>, <grid_size>  } 
        )
}
<tesseallation_cells_per_object> ::=
{ 
   CELLS_PER_OBJECT = n 
}

<grid_level> ::=
{
     LEVEL_1 = <grid_size> 
  |  LEVEL_2 = <grid_size> 
  |  LEVEL_3 = <grid_size> 
  |  LEVEL_4 = <grid_size> 
}

<grid_size> ::= { LOW | MEDIUM | HIGH }

<spatial_index_option> ::=
{
    PAD_INDEX = { ON | OFF }
  | FILLFACTOR = fillfactor
  | SORT_IN_TEMPDB = { ON | OFF }
  | IGNORE_DUP_KEY = OFF
  | STATISTICS_NORECOMPUTE = { ON | OFF }
  | DROP_EXISTING = { ON | OFF }
  | ONLINE = OFF
  | ALLOW_ROW_LOCKS = { ON | OFF }
  | ALLOW_PAGE_LOCKS = { ON | OFF }
  | MAXDOP = max_degree_of_parallelism
    | DATA_COMPRESSION = { NONE | ROW | PAGE }
}

Argumentos

  • index_name
    É o nome do índice. Os nomes de índice devem ser exclusivos em uma tabela, mas não precisam ser exclusivos em um banco de dados. Os nomes de índice devem seguir as regras de identificadores.

  • ON <objeto> ( spatial_column_name )
    Especifica o objeto (banco de dados, esquema ou tabela) no qual o índice será criado e o nome da coluna espacial.

    spatial_column_name especifica a coluna espacial na qual o índice se baseia. Apenas uma coluna espacial pode ser especificada em uma única definição de índice espacial; entretanto, vários índices espaciais podem ser criados em uma coluna geometry ou geography.

  • USING
    Indica o esquema de mosaico do índice espacial. Este parâmetro usa o valor tipo-específico, mostrado na seguinte tabela:

    Tipo de dados da coluna

    Esquema de mosaico

    geometry

    GEOMETRY_GRID

    geometry

    GEOMETRY_AUTO_GRID

    geography

    GEOGRAPY_GRID

    geography

    GEOGRAPHY_AUTO_GRID

    Um índice espacial pode ser criado apenas em uma coluna do tipo geometry ou geography. Caso contrário, será gerado um erro. Além disso, se um parâmetro inválido de determinado tipo for transmitido, um erro será gerado.

    ObservaçãoObservação

    Para obter informações sobre como o SQL Server implementa o mosaico, consulte Visão geral de índices espaciais.

  • ON filegroup_name
    Cria o índice especificado no grupo de arquivos especificado. Se nenhum local for especificado e a tabela não for particionada, o índice utilizará o mesmo grupo de arquivos da tabela subjacente. O grupo de arquivos já deve existir.

  • ON "padrão"
    Cria o índice especificado no grupo de arquivos padrão.

    Nesse contexto, default não é uma palavra-chave. É um identificador para o grupo de arquivos padrão e deve ser delimitado, como em ON "default" ou ON [default]. Se "padrão" for especificado, a opção QUOTED_IDENTIFIER deverá ser definida como ON para a sessão atual. Esta é a configuração padrão. Para obter mais informações, consulte SET QUOTED_IDENTIFIER (Transact-SQL).

<object>::=

É o objeto totalmente qualificado ou não totalmente qualificado a ser indexado.

  • database_name
    É o nome do banco de dados.

  • schema_name
    É o nome do esquema ao qual a tabela pertence.

  • table_name
    É o nome da tabela a ser indexada.

Opções USING

  • GEOMETRY_GRID
    Especifica o esquema de mosaico da grade geometry que está em uso. GEOMETRY_GRID só pode ser especificado em uma coluna do tipo de dados geometry. GEOMETRY_GRID permite o ajuste manual do esquema de mosaico.

  • GEOMETRY_AUTO_GRID
    Só pode ser especificado em uma coluna do tipo de dados geometry. Este é o padrão desse tipo de dados e não precisa ser especificado.

  • GEOGRAPHY_GRID
    Especifica o esquema de mosaico da grade geográfica. GEOGRAPHY_GRID só pode ser especificado em uma coluna do tipo de dados geography.

  • GEOGRAPHY_AUTO_GRID
    Só pode ser especificado em uma coluna do tipo de dados geography. Este é o padrão desse tipo de dados e não precisa ser especificado.

Opções WITH

  • BOUNDING_BOX
    Especifica quatro tuplas numéricas que definem as quatro coordenadas da caixa delimitadora: as coordenadas x mínima e y mínima do canto inferior esquerdo e as coordenadas x máxima e y máxima do canto superior direito.

    • xmin
      Especifica a coordenada x do canto inferior esquerdo da caixa delimitadora.

    • ymin
      Especifica a coordenada y do canto inferior esquerdo da caixa delimitadora.

    • xmax
      Especifica a coordenada x do canto superior direito da caixa delimitadora.

    • ymax
      Especifica a coordenada y do canto superior direito da caixa delimitadora.

    • XMIN = xmin
      Especifica o nome da propriedade e o valor da coordenada x do canto inferior esquerdo da caixa delimitadora.

    • YMIN =ymin
      Especifica o nome da propriedade e o valor da coordenada y do canto inferior esquerdo da caixa delimitadora.

    • XMAX =xmax
      Especifica o nome da propriedade e o valor da coordenada x do canto superior direito da caixa delimitadora.

    • YMAX =ymax
      Especifica o nome da propriedade e o valor da coordenada y do canto superior direito da caixa delimitadora.

    As coordenadas da caixa delimitadora só se aplicam em uma cláusula USING GEOMETRY_GRID.

    xmax deve ser maior que xmin e ymax deve ser maior que ymin. É possível especificar qualquer representação válida do valor float, supondo que: xmax > xmin e ymax > ymin. Caso contrário, os erros apropriados serão gerados.

    Não há valores padrão.

    Os nomes de propriedades da caixa delimitadora não diferenciam maiúsculas de minúsculas, independentemente do agrupamento de banco de dados.

    Cada nome de propriedade deve ser especificado somente uma única vez. Você pode especificá-los em qualquer ordem. Por exemplo, as seguintes cláusulas são equivalentes:

    • BOUNDING_BOX = ( XMIN = xmin, YMIN = ymin, XMAX = xmax, YMAX = ymax )

    • BOUNDING_BOX = ( XMIN = xmin, XMAX = xmax, YMIN = ymin, YMAX = ymax )

  • GRIDS
    Define a densidade da grade em cada nível de um esquema de mosaico. Quando GEOMETRY_AUTO_GRID e GEOGRAPHY_AUTO_GRID são selecionados, esta opção é desabilitada.

    ObservaçãoObservação

    Para obter informações sobre mosaico, consulte Visão geral de índices espaciais.

    Os parâmetros GRIDS são os seguintes:

    • LEVEL_1
      Especifica a grade de primeiro nível (superior).

    • LEVEL_2
      Especifica a grade de nível secundário.

    • LEVEL_3
      Especifica a grade de terceiro nível.

    • LEVEL_4
      Especifica a grade de quarto nível.

    • LOW
      Especifica a densidade mais baixa possível da grade em um determinado nível. LOW é igual a 16 células (uma grade 4x4).

    • MEDIUM
      Especifica a densidade média da grade em um determinado nível. MEDIUM é igual a 64 células (uma grade 8x8).

    • HIGH
      Especifica a densidade mais alta possível para a grade em um determinado nível. HIGH é igual a 256 células (uma grade 16x16).

    O uso de nomes de nível permite especificar os níveis em qualquer ordem e omitir níveis. Se você utilizar o nome para qualquer nível, deverá usar o nome de qualquer outro nível especificado. Se um nível for omitido, o padrão da sua densidade será MEDIUM.

    Se uma densidade inválida for especificada, um erro será gerado.

  • CELLS_PER_OBJECT =n
    Especifica o número de células de mosaico por objeto, que pode ser usado para um único objeto espacial no índice pelo processo de mosaico. n pode ser qualquer inteiro entre 1 e 8.192, inclusive. Se um número inválido for passado ou se o número for maior que o máximo de células para o mosaico especificado, um erro será gerado.

    CELLS_PER_OBJECT tem os seguintes valores padrão:

    Opção USING

    Células padrão por objeto

    GEOMETRY_GRID

    16

    GEOMETRY_AUTO_GRID

    8

    GEOGRAPHY_GRID

    16

    GEOGRAPHY_AUTO_GRID

    12

    No nível superior, se um objeto abranger mais células que o especificado por n, a indexação usará o número de células necessário para fornecer um mosaico de nível superior completo. Nesses casos, um objeto poderia receber mais que o número de células especificado. Nesse caso, o número máximo é o número de células geradas pela grade de nível superior, o que depende da densidade.

    O valor CELLS_PER_OBJECT é usado pela regra de mosaico de células-por-objeto. Para obter informações sobre as regras de mosaico, consulte Visão geral de índices espaciais.

  • PAD_INDEX = { ON | OFF }
    Especifica o preenchimento do índice. O padrão é OFF.

    • ON
      Indica que a porcentagem de espaço livre especificada por fillfactor é aplicada às páginas de nível intermediário do índice.

    • OFF ou fillfactor não está especificado
      Indica que as páginas de nível intermediário são preenchidas até próximo de sua capacidade, deixando espaço suficiente para pelo menos uma linha do tamanho máximo que o índice pode ter, considerando o conjunto de chaves nas páginas intermediárias.

    A opção PAD_INDEX só é útil quando FILLFACTOR é especificado, porque PAD_INDEX usa a porcentagem especificada por FILLFACTOR. Se a porcentagem especificada para FILLFACTOR não for grande o suficiente para permitir uma linha, o Mecanismo de Banco de Dados substituirá a porcentagem internamente para permitir o valor mínimo. O número de linhas em uma página de índice intermediária nunca é menor do que dois, independentemente de quão baixo seja o valor de fillfactor.

  • FILLFACTOR =fillfactor
    Especifica uma porcentagem que indica quanto o Mecanismo de Banco de Dados deve preencher o nível folha de cada página de índice durante a criação ou recriação do índice. fillfactor deve ser um valor inteiro de 1 a 100. O padrão é 0. Se fillfactor for 100 ou 0, o Mecanismo de Banco de Dados criará índices com páginas de folha preenchidas até a capacidade máxima.

    ObservaçãoObservação

    Os valores de fator de preenchimento 0 e 100 são iguais em todos os aspectos.

    A configuração FILLFACTOR se aplica somente quando o índice é criado ou recriado. O Mecanismo de Banco de Dados não mantém dinamicamente a porcentagem especificada de espaço vazio nas páginas. Para exibir a configuração do fator de preenchimento, use a exibição do catálogo sys.indexes.

    Observação importanteImportante

    A criação de um índice clusterizado com FILLFACTOR inferior a 100 afeta a quantidade de espaço de armazenamento ocupado pelos dados, porque o Mecanismo de Banco de Dados redistribui os dados quando cria o índice clusterizado.

    Para obter mais informações, consulte Especificar fator de preenchimento para um índice.

  • SORT_IN_TEMPDB = { ON | OFF }
    Especifica se os resultados da classificação temporária devem ser armazenados em tempdb. O padrão é OFF.

    • ON
      Os resultados da classificação intermediária usados para criar o índice são armazenados em tempdb. Isso pode reduzir o tempo necessário para criar um índice se tempdb estiver em um conjunto de discos diferente do banco de dados do usuário. Entretanto, isso aumenta o espaço em disco usado durante a criação do índice.

    • OFF
      Os resultados de classificação intermediários são armazenados no mesmo banco de dados que o índice.

    Além do espaço necessário no banco de dados do usuário para criar o índice, tempdb deve ter aproximadamente o mesmo espaço adicional para armazenar os resultados da classificação intermediária. Para obter mais informações, consulte Opção SORT_IN_TEMPDB para índices.

  • IGNORE_DUP_KEY =OFF
    Não tem nenhum efeito para índices espaciais porque o tipo de índice nunca é exclusivo. Não defina essa opção como ON; caso contrário, um erro será gerado.

  • STATISTICS_NORECOMPUTE = { ON | OFF}
    Especifica se as estatísticas de distribuição são recomputadas. O padrão é OFF.

    • ON
      As estatísticas desatualizadas não são recalculadas automaticamente.

    • OFF
      A atualização automática de estatísticas está habilitada.

    Para restaurar a atualização automática de estatísticas, defina STATISTICS_NORECOMPUTE como OFF ou execute UPDATE STATISTICS sem a cláusula NORECOMPUTE.

    Observação importanteImportante

    Se o recálculo automático de estatísticas de distribuição for desabilitado, o otimizador de consultas poderá não selecionar planos de execução ideais para consultas que envolvam a tabela.

  • DROP_EXISTING = { ON | OFF }
    Especifica que o índice espacial nomeado preexistente seja removido e recriado. O padrão é OFF.

    • ON
      O índice existente é removido e recriado. O nome de índice especificado deve ser igual ao índice existente atualmente; no entanto, a definição de índice pode ser modificada. Por exemplo, você pode especificar colunas, ordens de classificação, esquemas de partição ou opções de índice diferentes.

    • OFF
      Um erro será exibido se o nome de índice especificado já existir.

    O tipo de índice não pode ser alterado com DROP_EXISTING.

  • ONLINE =OFF
    Especifica que as tabelas subjacentes e os índices associados não estão disponíveis para consultas e modificação de dados durante a operação de índice. Nesta versão do SQL Server, não há suporte para a criação de índices espaciais online. Se esta opção for definida como ON para um índice espacial, um erro será gerado. Omita a opção ONLINE ou defina ONLINE como OFF.

    Uma operação de índice offline que cria, recria ou remove um índice espacial adquire um bloqueio Sch-M (Modificação de esquema) na tabela. Isso evita o acesso de todos os usuários à tabela subjacente enquanto durar a operação.

    ObservaçãoObservação

    As operações de índice online não estão disponíveis em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, consulte Recursos compatíveis com as edições do SQL Server 2012.

  • ALLOW_ROW_LOCKS = { ON | OFF }
    Especifica se bloqueios de linha são permitidos. O padrão é ON.

    • ON
      Bloqueios de linha são permitidos ao acessar o índice. O Mecanismo de Banco de Dados determina quando os bloqueios de linha são usados.

    • OFF
      Bloqueios de linha não são usados.

  • ALLOW_PAGE_LOCKS = { ON | OFF }
    Especifica se bloqueios de página são permitidos. O padrão é ON.

    • ON
      Bloqueios de página são permitidos ao acessar o índice. O Mecanismo de Banco de Dados determina quando os bloqueios de página são usados.

    • OFF
      Bloqueios de página não são usados.

  • MAXDOP =max_degree_of_parallelism
    Substitui a opção de configuração max degree of parallelism para a duração da operação de índice. Use MAXDOP para limitar o número de processadores usados em uma execução de plano paralelo. O máximo é de 64 processadores.

    Observação importanteImportante

    Embora a opção MAXDOP tenha suporte sintaticamente, CREATE SPATIAL INDEX utiliza sempre no momento apenas um único processador.

    max_degree_of_parallelism pode ser:

    • 1
      Suprime a geração de plano paralelo.

    • >1
      Restringe o número máximo de processadores usados em uma operação de índice paralela ao número especificado, ou menos, com base na carga de trabalho atual do sistema.

    • 0 (padrão)
      Usa o número real de processadores, ou menos, com base na carga de trabalho atual do sistema.

    Para obter mais informações, consulte Configurar operações de índice paralelo.

    ObservaçãoObservação

    As operações de índice paralelas não estão disponíveis em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, consulte Recursos compatíveis com as edições do SQL Server 2012.

  • DATA_COMPRESSION = {NONE | ROW | PAGE}
    Determina o nível de compactação de dados usado pelo índice.

    • NONE
      Nenhuma compactação de dados usada pelo índice

    • ROW
      Compactação de dados de linha usada pelo índice

    • PAGE
      Compactação de dados de página usada pelo índice

Comentários

Para obter uma introdução à indexação espacial no SQL Server, consulte Visão geral de índices espaciais.

Todas as opções só podem ser especificadas uma única vez por instrução CREATE SPATIAL INDEX. A especificação de uma duplicata de qualquer opção gera um erro.

Você pode criar até 249 índices espaciais em cada coluna espacial em uma tabela. A criação de mais de um índice espacial na coluna espacial especificada pode ser útil, por exemplo, para indexar diferentes parâmetros de mosaico em uma única coluna.

Observação importanteImportante

Existem várias outras restrições na criação de um índice espacial. Para obter mais informações, consulte Visão geral de índices espaciais.

Uma criação de índice não pode usar o paralelismo de processo disponível.

Métodos com suporte em índices espaciais

Em algumas condições, os índices espaciais dão suporte a alguns métodos de geometria orientados a conjuntos. Para obter mais informações, consulte Visão geral de índices espaciais.

Índices espaciais e particionamento

Por padrão, se um índice espacial for criado em uma tabela particionada, ele será particionado de acordo com o esquema de partição da tabela. Isso garante que os dados do índice e a linha relacionada sejam armazenados na mesma partição.

Nesse caso, para alterar o esquema de partição da tabela base, é necessário remover o índice espacial antes de particionar a tabela base novamente. Para evitar essa restrição, ao criar um índice espacial, você pode especificar a opção "ON filegroup". Para obter mais informações, consulte “Índices espaciais e grupos de arquivos”, mais adiante neste tópico.

Índices espaciais e grupos de arquivos

Por padrão, os índices espaciais são particionados nos mesmos grupos de arquivos que a tabela na qual o índice é especificado. Isso pode ser substituído usando a especificação de grupo de arquivos:

[ ON { filegroup_name | "default" } ]

Se um grupo de arquivos for especificado para um índice espacial, o índice será colocado nesse grupo de arquivos, independentemente do esquema de particionamento da tabela.

Exibições do catálogo para índices espaciais

As exibições do catálogo a seguir são específicas a índices espaciais:

Comentários adicionais sobre a criação de índices

Para obter mais informações sobre como criar índices, consulte a seção "Comentários" em CREATE INDEX (Transact-SQL).

Permissões

O usuário deve possuir a permissão ALTER na tabela ou exibição ou ser membro da função de servidor fixa sysadmin ou das funções de banco de dados fixas db_ddladmin e db_owner.

Exemplos

A.Criando um índice espacial em uma coluna de geometria

O exemplo a seguir cria uma tabela nomeada SpatialTable, que contém uma coluna do tipo geometry, geometry_col. Em seguida, o exemplo cria um índice espacial, SIndx_SpatialTable_geometry_col1, em geometry_col. O exemplo usa o esquema de mosaico padrão e especifica a caixa delimitadora.

CREATE TABLE SpatialTable(id int primary key, geometry_col geometry);
CREATE SPATIAL INDEX SIndx_SpatialTable_geometry_col1 
   ON SpatialTable(geometry_col)
   WITH ( BOUNDING_BOX = ( 0, 0, 500, 200 ) );

B.Criando um índice espacial em uma coluna de geometria

O exemplo a seguir cria um segundo índice espacial, SIndx_SpatialTable_geometry_col2, em geometry_col na tabela SpatialTable. O exemplo especifica GEOMETRY_GRID como o esquema de mosaico. O exemplo também especifica a caixa delimitadora, diferentes densidades em diferentes níveis de grade e 64 células por objeto. O exemplo também define o preenchimento de índice como ON.

CREATE SPATIAL INDEX SIndx_SpatialTable_geometry_col2
   ON SpatialTable(geometry_col)
   USING GEOMETRY_GRID
   WITH (
    BOUNDING_BOX = ( xmin=0, ymin=0, xmax=500, ymax=200 ),
    GRIDS = (LOW, LOW, MEDIUM, HIGH),
    CELLS_PER_OBJECT = 64,
    PAD_INDEX  = ON );

C.Criando um índice espacial em uma coluna de geometria

O exemplo a seguir cria um terceiro índice espacial, SIndx_SpatialTable_geometry_col3, em geometry_col na tabela SpatialTable. O exemplo usa o esquema de mosaico padrão. O exemplo especifica a caixa delimitadora e usa diferentes densidades de célula no terceiro e no quarto níveis, usando o número padrão de células por objeto.

CREATE SPATIAL INDEX SIndx_SpatialTable_geometry_col3
   ON SpatialTable(geometry_col)
   WITH (
    BOUNDING_BOX = ( 0, 0, 500, 200 ),
    GRIDS = ( LEVEL_4 = HIGH, LEVEL_3 = MEDIUM ) );

D.Alterando uma opção que é específica a índices espaciais

O exemplo a seguir recria o índice espacial criado no exemplo anterior, SIndx_SpatialTable_geography_col3, especificando uma nova densidade LEVEL_3 com DROP_EXISTING = ON.

CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
   ON SpatialTable(geography_col)
   WITH ( BOUNDING_BOX = ( 0, 0, 500, 200 ),
        GRIDS = ( LEVEL_3 = LOW ),
        DROP_EXISTING = ON );

E.Criando um índice espacial em uma coluna de geografia

O exemplo a seguir cria uma tabela nomeada SpatialTable2, que contém uma coluna do tipo geography, geography_col. Em seguida, o exemplo cria um índice espacial, SIndx_SpatialTable_geography_col1, em geography_col. O exemplo usa os valores de parâmetros padrão do esquema de mosaico GEOGRAPHY_AUTO_GRID.

CREATE TABLE SpatialTable2(id int primary key, object GEOGRAPHY);
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col1 
   ON SpatialTable2(object);
ObservaçãoObservação

Para índices de grade geográfica, não é possível especificar uma caixa delimitadora.

F.Criando um índice espacial em uma coluna de geografia

O exemplo a seguir cria um segundo índice espacial, SIndx_SpatialTable_geography_col2, em geography_col na tabela SpatialTable2. O exemplo especifica GEOGRAPHY_GRID como o esquema de mosaico. O exemplo também especifica diferentes densidades de grade em diferentes níveis e 64 células por objeto. O exemplo também define o preenchimento de índice como ON.

CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col2
   ON SpatialTable2(object)
   USING GEOGRAPHY_GRID
   WITH (
    GRIDS = (MEDIUM, LOW, MEDIUM, HIGH ),
    CELLS_PER_OBJECT = 64,
    PAD_INDEX  = ON );

G.Criando um índice espacial em uma coluna de geografia

O exemplo a seguir cria um terceiro índice espacial, SIndx_SpatialTable_geography_col3, em geography_col na tabela SpatialTable2. O exemplo usa o esquema de mosaico padrão, GEOGRAPHY_GRID e o valor padrão de CELLS_PER_OBJECT (16).

CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
   ON SpatialTable2(object)
   WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );

Consulte também

Referência

ALTER INDEX (Transact-SQL)

CREATE INDEX (Transact-SQL)

CREATE PARTITION FUNCTION (Transact-SQL)

CREATE PARTITION SCHEME (Transact-SQL)

CREATE STATISTICS (Transact-SQL)

CREATE TABLE (Transact-SQL)

Tipos de dados (Transact-SQL)

DBCC SHOW_STATISTICS (Transact-SQL)

DROP INDEX (Transact-SQL)

EVENTDATA (Transact-SQL)

sys.index_columns (Transact-SQL)

sys.indexes (Transact-SQL)

sys.spatial_index_tessellations (Transact-SQL)

sys.spatial_indexes (Transact-SQL)

Conceitos

Visão geral de índices espaciais

Visão geral de índices espaciais