Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Cria um índice espacial numa tabela e coluna especificadas no SQL Server. Um índice pode ser criado antes de haver dados na tabela. Os índices podem ser criados em tabelas ou vistas noutra base de dados especificando um nome de base de dados qualificado. Os índices espaciais exigem que a tabela tenha uma chave primária agrupada. Os índices espaciais não podem ser especificados em exibições indexadas. Para obter informações sobre índices espaciais, consulte Visão geral de índices espaciais.
Transact-SQL convenções de sintaxe
Sintaxe
CREATE SPATIAL INDEX index_name
ON <object> ( spatial_column_name )
{
<geometry_tessellation> | <geography_tessellation>
}
[ ON { filegroup_name | "default" } ]
[;]
<object> ::=
{ database_name.schema_name.table_name | schema_name.table_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 }
<tessellation_grid> ::=
{
GRIDS = ( { <grid_level> [ ,...n ] | <grid_size>, <grid_size>, <grid_size>, <grid_size> }
)
}
<tessellation_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 }
}
Arguments
index_name
É o nome do índice. Os nomes dos índices devem ser únicos dentro de uma tabela, mas não têm de ser únicos dentro de uma base de dados. Os nomes dos índices devem seguir as regras dos identificadores.
Objeto> ON <( spatial_column_name )
Especifica o objeto (base de dados, esquema ou tabela) sobre o qual o índice deve ser criado e o nome da coluna espacial.
spatial_column_name especifica a coluna espacial em que o índice se baseia. Apenas uma coluna espacial pode ser especificada numa única definição de índice espacial; no entanto, podem ser criados múltiplos índices espaciais numa coluna de geometria ou geografia .
UTILIZAÇÃO
Indica o esquema de tesselação para o índice espacial. Este parâmetro utiliza o valor específico do tipo, mostrado na tabela seguinte:
| Tipo de dados da coluna | Esquema de tesselação |
|---|---|
| geometry | GEOMETRY_GRID |
| geometry | GEOMETRY_AUTO_GRID |
| geography | GEOGRAPHY_GRID |
| geography | GEOGRAPHY_AUTO_GRID |
Um índice espacial só pode ser criado numa coluna de geometriaou geografia do tipo, caso contrário surge um erro. Se um parâmetro inválido para um dado tipo for passado, é criado um erro.
Para informações sobre como o SQL Server implementa a tesselação, consulte Visão Geral dos Índices Espaciais.
EM filegroup_name
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Cria o índice especificado no grupo de arquivos especificado. Se não for especificada a localização e a tabela não for particionada, o índice utiliza o mesmo grupo de ficheiros da tabela subjacente. O grupo de arquivos já deve existir.
ON "padrão"
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Cria o índice especificado no grupo de arquivos padrão.
O termo default, neste contexto, não é uma palavra-chave. É um identificador para o grupo de ficheiros predefinido e deve ser delimitado, como em ON "default" ou ON [default]. Se "default" for especificado, a opção QUOTED_IDENTIFIER deve estar ATIVADA para a sessão atual. Esta é a configuração padrão. Para obter mais informações, consulte SET QUOTED_IDENTIFIER (Transact-SQL).
<objeto>::=
O objeto totalmente qualificado ou não totalmente qualificado deve ser indexado.
database_name
É o nome da base de dados.
schema_name
É o nome do esquema ao qual a tabela pertence.
table_name
É o nome da tabela a ser indexada.
O Azure SQL Database suporta o formato de nomes em três partes database_name. [schema_name].object_name quando o database_name é a base de dados atual ou o database_name é tempdb e o object_name começa com #.
USAR opções
GEOMETRY_GRID
Especifica o esquema de tesselação em grelha geométrica que estás a usar. GEOMETRY_GRID só pode ser especificado numa coluna do tipo de dados geométrico . GEOMETRY_GRID permite o ajuste manual do esquema de tesselação.
GEOMETRY_AUTO_GRID
Aplica-se a: SQL Server (SQL Server 2012 (11.x) e posterior) e Azure SQL Database
Só pode ser especificado numa coluna do tipo de dados geométrico. Este é o padrão para este tipo de dado e não precisa de ser especificado.
GEOGRAPHY_GRID
Especifica o esquema de tesselação da grelha geográfica. GEOGRAPHY_GRID só pode ser especificado numa coluna do tipo de dados geográfico .
GEOGRAPHY_AUTO_GRID
Aplica-se a: SQL Server (SQL Server 2012 (11.x) e posterior) e Azure SQL Database
Pode ser especificado apenas numa coluna do tipo de dados geográfico. Este é o padrão para este tipo de dado e não precisa de ser especificado.
COM opções
BOUNDING_BOX
Especifica uma quatro-tuplas numérica que define as quatro coordenadas da caixa delimitadora: as coordenadas x-min e y-min do canto inferior esquerdo, e as coordenadas x-max e y-max 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 e valor da propriedade para a coordenada x do canto inferior esquerdo da caixa delimitadora.
YMIN =ymin
Especifica o nome e valor da propriedade para a coordenada y do canto inferior esquerdo da caixa delimitadora.
XMAX =xmax
Especifica o nome e valor da propriedade para a coordenada x do canto superior direito da caixa delimitadora.
YMAX =ymax
Especifica o nome e valor da propriedade para a coordenada y do canto superior direito da caixa delimitadora
Observação
As coordenadas da caixa delimitadora aplicam-se apenas dentro de uma cláusula USING GEOMETRY_GRID.
Xmax deve ser maior que xmin e ymax deve ser maior que ymin. Pode especificar qualquer representação válida do valor flutuante , assumindo que: xmax>xmin e ymax>ymin. Caso contrário, são levantados os erros apropriados.
Não existem valores por defeito.
Os nomes das propriedades das caixas delimitadoras são insensíveis a maiúsculas e maiúsculas, independentemente da colação da base de dados.
Para especificar os nomes das propriedades, deve especificar cada um deles uma vez e apenas uma vez. Podes especificá-los por 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)
GRECHES
Define a densidade da grelha em cada nível de um esquema de tesselação. Quando GEOMETRY_AUTO_GRID e GEOGRAPHY_AUTO_GRID são selecionados, esta opção fica desativada.
Para informações sobre tesselação, consulte Visão Geral dos Índices Espaciais.
Os parâmetros do GRIDS são os seguintes:
LEVEL_1
Especifica a grelha de primeiro nível (topo).
LEVEL_2
Especifica a grelha do segundo nível.
LEVEL_3
Especifica a grelha de terceiro nível.
LEVEL_4
Especifica a grelha do quarto nível.
LOW
Especifica a densidade mais baixa possível para a grelha num dado nível. LOW equivale a 16 células (uma grelha 4x4).
MÉDIA
Especifica a densidade do meio para a grelha num dado nível. MEDIUM equivale a 64 células (uma grelha de 8x8).
HIGH
Especifica a densidade máxima possível para a grelha num dado nível. HIGH equivale a 256 células (uma grelha de 16x16).
Observação
Usar os nomes dos níveis permite especificar os níveis por qualquer ordem e omitir níveis. Se usar o nome para qualquer nível, deve usar o nome de qualquer outro nível que especifique. Se omitir um nível, a densidade dele é MÉDIA.
Advertência
Se for especificada uma densidade inválida, surge um erro.
CELLS_PER_OBJECT =n
Especifica o número de células de tesselação por objeto que podem ser usadas para um único objeto espacial no índice pelo processo de tesselação.
n pode ser qualquer inteiro entre 1 e 8192, inclusive. Se um número inválido for ultrapassado ou se o número for maior do que o número máximo de células para a tesselação especificada, surge um erro.
CELLS_PER_OBJECT tem os seguintes valores padrão:
| USAR a opção | Células Padrão por Objeto |
|---|---|
| GEOMETRY_GRID | 16 |
| GEOMETRY_AUTO_GRID | 8 |
| GEOGRAPHY_GRID | 16 |
| GEOGRAPHY_AUTO_GRID | 12 |
Ao nível superior, se um objeto cobrir mais células do que o especificado por n, a indexação utiliza tantas células quanto necessário para fornecer uma tesselação completa de nível superior. Nesses casos, um objeto pode receber mais do que o número especificado de células. Neste caso, o número máximo é o número de células geradas pela grelha de nível superior, que depende da densidade.
O valor CELLS_PER_OBJECT é usado pela regra de tesselação célula por objeto. Para informações sobre as regras de tesselação, consulte Visão Geral dos Índices Espaciais.
PAD_INDEX = { ON | DESLIGADO }
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Especifica o preenchimento do índice. O padrão é OFF.
ON
Indica que a percentagem de espaço livre especificada pelo fator de preenchimento é aplicada às páginas de nível intermédio do índice.
OFF ou fillfactor não é especificado
Indica que as páginas de nível intermédio estão preenchidas quase até à capacidade, deixando espaço suficiente para pelo menos uma linha do tamanho máximo que o índice pode ter, considerando o conjunto de teclas nas páginas intermédias.
A opção PAD_INDEX é útil apenas quando o FILLFACTOR é especificado, porque PAD_INDEX utiliza a percentagem especificada pelo FILLFACTOR. Se a percentagem especificada para o FILLFACTOR não for suficientemente grande para permitir uma linha, o Motor de Base de Dados sobrescreve internamente a percentagem para permitir o mínimo. O número de linhas numa página de índice intermédia nunca é inferior a duas, indiferente a quão baixo seja o valor do fator de preenchimento.
FILLFACTOR = fillfactor
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Especifica uma porcentagem que indica o quão cheio o Mecanismo de Banco de Dados deve tornar o nível de folha de cada página de índice durante a criação ou reconstrução do índice. o fator de preenchimento deve ser um valor inteiro de 1 a 100. O padrão é 0. Se o fator de preenchimento for 100 ou 0, o Motor de Base de Dados cria índices com páginas folha preenchidas até à capacidade.
Observação
Os valores de fator de preenchimento 0 e 100 são os mesmos em todos os aspetos.
A definição FILLFACTOR aplica-se apenas quando o índice é criado ou reconstruído. O Motor de Base de Dados não mantém dinamicamente a percentagem especificada de espaço vazio nas páginas. Para exibir a configuração do fator de preenchimento, use a vista do catálogo sys.indexes.
Importante
Criar um índice agrupado com um FILLFACTOR inferior a 100 afeta a quantidade de espaço de armazenamento que os dados ocupam porque o Motor de Base de Dados redistribui os dados ao criar o índice agrupado.
Para obter mais informações, consulte Especificar fator de preenchimento para um índice.
SORT_IN_TEMPDB = { ON | DESLIGADO }
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Especifica se armazenar resultados temporários de ordenação em tempdb. O padrão é OFF.
ON
Os resultados intermédios de ordenação usados para construir o índice são armazenados em tempdb. Isto pode reduzir o tempo necessário para criar um índice se o tempdb estiver num conjunto diferente de discos do que a base de dados do utilizador. No entanto, isso aumenta a quantidade de espaço em disco que é usado durante a compilação do índice.
DESLIGADO
Os resultados da classificação intermediária são armazenados no mesmo banco de dados que o índice.
Além do espaço necessário na base de dados do utilizador para criar o índice, o tempdb deve ter aproximadamente a mesma quantidade de espaço adicional para armazenar os resultados intermédios de ordenação. Para mais informações, consulte SORT_IN_TEMPDB Opção para Índices.
IGNORE_DUP_KEY =DESLIGADO
Não tem efeito para índices espaciais porque o tipo de índice nunca é único. Não defina esta opção para LIGADO, caso contrário surge um erro.
STATISTICS_NORECOMPUTE = { ON | DESLIGADO}
Especifica se as estatísticas de distribuição são recalculadas. O padrão é OFF.
ON
As estatísticas desatualizadas não são recalculadas automaticamente.
DESLIGADO
A atualização automática de estatísticas está ativada.
Para restaurar a atualização automática de estatísticas, defina o STATISTICS_NORECOMPUTE para DESLIGADO, ou execute UPDATE STATISTICS sem a cláusula NORECOMPUTE.
Importante
Desativar o recálculo automático das estatísticas de distribuição pode impedir o otimizador de consultas de escolher planos de execução ótimos para consultas que envolvam a tabela.
DROP_EXISTING = { ON | DESLIGADO }
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Especifica que o índice espacial nomeado e pré-existente é eliminado e reconstruído. O padrão é OFF.
ON
O índice existente é descartado e reconstruído. O nome do índice especificado deve ser o mesmo que um índice existente no momento; no entanto, a definição do índice pode ser modificada. Por exemplo, você pode especificar colunas diferentes, ordem de classificação, esquema de partição ou opções de índice.
DESLIGADO
Um erro será exibido se o nome de índice especificado já existir.
O tipo de índice não pode ser alterado usando DROP_EXISTING.
ONLINE =DESLIGADO
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 do índice. Nesta versão do SQL Server, as compilações de índices online não são suportadas para índices espaciais. Se esta opção for definida como ON para um índice espacial, surge um erro. Ou omite a opção ONLINE ou define ONLINE como DESLIGADO.
Uma operação de índice offline que cria, reconstrói ou elimina um índice espacial, adquire um bloqueio de modificação de esquema (Sch-M) na tabela. Isso impede que todo o usuário acesse a tabela subjacente durante a operação.
Observação
As operações de índice online não estão disponíveis em todas as edições do SQL Server. Para obter uma lista de recursos suportados pelas edições do SQL Server, consulte Recursos com suporte nas edições do SQL Server 2016.
ALLOW_ROW_LOCKS = { ON | DESLIGADO }
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Especifica se os bloqueios de linha são permitidos. O padrão é LIGADO.
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.
DESLIGADO
Os bloqueios de linha não são usados.
ALLOW_PAGE_LOCKS = { ON | DESLIGADO }
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Especifica se os bloqueios de página são permitidos. O padrão é LIGADO.
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.
DESLIGADO
Os bloqueios de página não são usados.
MAXDOP =max_degree_of_parallelism
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posterior) e Azure SQL Database
Sobrescreve a opção de configuração max degree of parallelism durante a execução da operação de indexação. Use MAXDOP para limitar o número de processadores usados em uma execução de plano paralelo. O máximo é de 64 processadores.
Importante
Embora a opção MAXDOP seja suportada sintaticamente, o CREATE SPATIAL INDEX utiliza atualmente apenas um único processador.
max_degree_of_parallelism pode ser:
1
Suprime a geração de planos paralelos.
>1
Restringe o número máximo de processadores usados em uma operação de índice paralelo 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ção
Operações de índice paralelo não estão disponíveis em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos suportados pelas edições do SQL Server, consulte Recursos com suporte nas edições do SQL Server 2016.
DATA_COMPRESSION = {NENHUM | ROW | PÁGINA}
Aplica-se a: SQL Server (SQL Server 2012 (11.x) e posterior) e Azure SQL Database
Determina o nível de compactação de dados usado pelo índice.
NENHUM
Não foi utilizada compressão nos dados pelo índice
LINHA
Compactação de linha utilizada pelo índice nos dados
PÁGINA
Compactação de página utilizada pelo índice nos dados
Observações
Cada opção pode ser especificada apenas uma vez por instrução CREATE SPATIAL INDEX. Especificar uma duplicata de qualquer opção gera um erro.
Pode criar até 249 índices espaciais em cada coluna espacial numa tabela. Criar mais do que um índice espacial numa coluna espacial específica pode ser útil, por exemplo, para indexar diferentes parâmetros de tesselação numa única coluna.
Importante
Existem várias outras restrições na criação de um índice espacial. Para mais informações, consulte Visão Geral dos Índices Espaciais.
Uma build de índice não pode utilizar o paralelismo de processos disponível.
Métodos suportados em índices espaciais
Sob certas condições, índices espaciais suportam vários métodos de geometria orientados a conjuntos. Para mais informações, consulte Visão Geral dos Índices Espaciais.
Índices espaciais e particionamento
Por defeito, se um índice espacial for criado numa tabela particionada, o índice é particionado de acordo com o esquema de partição da tabela. Isto assegura que os dados do índice e a linha relacionada são armazenados na mesma partição.
Neste caso, para alterar o esquema de partição da tabela base, terias de eliminar o índice espacial antes de poderes reparticionar a tabela base. Para evitar esta restrição, ao criar um índice espacial, pode especificar a opção "ON filegroup". Para mais informações, consulte "Índices Espaciais e Grupos de Ficheiros", mais adiante neste tópico.
Índices espaciais e grupos de ficheiros
Por defeito, os índices espaciais são particionados nos mesmos grupos de ficheiros que a tabela onde o índice é especificado. Isto pode ser ultrapassado usando a especificação do grupo de ficheiros:
[ EM { filegroup_name | "padrão" } ]
Se especificar um grupo de ficheiros para um índice espacial, o índice é colocado nesse grupo de ficheiros, independentemente do esquema de partição da tabela.
Vistas de catálogo para índices espaciais
As seguintes vistas de catálogo são específicas para índices espaciais:
sys.spatial_indexes
Representa a principal informação do índice dos índices espaciais.
sys.spatial_index_tessellations
Representa a informação sobre o esquema de tesselação e os parâmetros de cada um dos índices espaciais.
Observações adicionais sobre a criação de índices
Para mais informações sobre como criar índices, consulte a secção "Observações" em CRIAR ÍNDICE (Transact-SQL).
Permissions
O utilizador deve ter ALTER permissão na tabela ou na vista, ou ser membro do papel fixo de servidor administrador do sistema ou dos db_ddladmin papéis fixos de base de dados.db_owner
Examples
A. Criação de um índice espacial numa coluna de geometria
O exemplo seguinte cria uma tabela nomeada SpatialTable que contém uma coluna de tipo de geometria , geometry_col. O exemplo cria então um índice espacial, SIndx_SpatialTable_geometry_col1, no geometry_col. O exemplo utiliza o esquema de tesselação 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. Criação de um índice espacial numa coluna de geometria
O exemplo seguinte cria um segundo índice espacial, SIndx_SpatialTable_geometry_col2, na geometry_col tabela SpatialTable . O exemplo especifica GEOMETRY_GRID como o esquema de tesselação. O exemplo também especifica a caixa delimitadora, diferentes densidades em diferentes níveis de grelha e 64 células por objeto. O exemplo também define o preenchimento do índice para 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. Criação de um índice espacial numa coluna de geometria
O exemplo seguinte cria um terceiro índice espacial, SIndx_SpatialTable_geometry_col3, na geometry_colSpatialTable tabela. O exemplo utiliza o esquema padrão de tesselação. O exemplo especifica a caixa delimitadora e usa diferentes densidades de células no terceiro e 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. Alterar uma opção específica para índices espaciais
O exemplo seguinte reconstrói o índice espacial criado no exemplo anterior, SIndx_SpatialTable_geography_col3, especificando uma nova LEVEL_3 densidade 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. Criação de um índice espacial numa coluna de geografia
O exemplo seguinte cria uma tabela chamada SpatialTable2 que contém uma coluna de tipo de geografia , geography_col. O exemplo cria então um índice espacial, SIndx_SpatialTable_geography_col1, no geography_col. O exemplo utiliza os valores de parâmetros padrão do esquema de tesselação GEOGRAPHY_AUTO_GRID.
CREATE TABLE SpatialTable2(id int primary key, object GEOGRAPHY);
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col1
ON SpatialTable2(object);
Observação
Para índices de grelha geográfica, não pode ser especificada uma caixa delimitadora.
F. Criação de um índice espacial numa coluna de geografia
O exemplo seguinte cria um segundo índice espacial, SIndx_SpatialTable_geography_col2, na geography_col tabela SpatialTable2 . O exemplo especifica GEOGRAPHY_GRID como o esquema de tesselação. O exemplo também especifica diferentes densidades de grelha em diferentes níveis e 64 células por objeto. O exemplo também define o preenchimento do índice para 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. Criação de um índice espacial numa coluna de geografia
O exemplo cria então um terceiro índice espacial, SIndx_SpatialTable_geography_col3, na geography_colSpatialTable2 tabela. O exemplo utiliza o esquema de tesselação por defeito, GEOGRAPHY_GRID, e o valor de CELLS_PER_OBJECT por defeito (16).
CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3
ON SpatialTable2(object)
WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );
Consulte também
ALTERAR ÍNDICE (Transact-SQL)
CRIAR ÍNDICE (Transact-SQL)
CRIE FUNÇÃO DE PARTIÇÃO (Transact-SQL)
CRIAR ESQUEMA DE PARTIÇÃO (Transact-SQL)
CRIAR ESTATÍSTICAS (Transact-SQL)
CRIAR TABELA (Transact-SQL)
Tipos de dados (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
ELIMINAR ÍNDICE (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)
Visão geral dos índices espaciais