Creare, modificare ed eliminare indici spaziali

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di Azure SQLDatabase SQL in Microsoft Fabric

Un indice spaziale consente di eseguire in modo più efficiente determinate operazioni in una colonna con tipo di dati geometry o geography ( colonna spaziale). In una colonna spaziale è possibile specificare più di un indice spaziale. Ciò è utile, ad esempio, per indicizzare diversi parametri di tessellazione in una sola colonna.

La creazione di indici spaziali è soggetta a un certo numero di limitazioni. Per altre informazioni, vedere Restrizioni relative agli indici spaziali .

Note

Per informazioni sulla relazione tra indici spaziali e filegroup, vedere la sezione "Osservazioni" in CREATE SPATIAL INDEX (Transact-SQL).

Creazione, modifica e rimozione di indici spaziali

Per creare un indice spaziale

Per creare un indice spaziale tramite Transact-SQL
CREATE SPATIAL INDEX (Transact-SQL)

Per creare un indice spaziale tramite la finestra di dialogo Nuovo indice in Management Studio

Per creare un indice spaziale in Management Studio
  1. In Esplora oggetti connettersi a un'istanza del Motore di database di SQL Server e quindi espandere l'istanza.

  2. Espandere Database, espandere il database che contiene la tabella con l'indice specificato e quindi espandere Tabelle.

  3. Espandere la tabella per la quale si desidera creare l'indice.

  4. Fare clic con il pulsante destro del mouse su Indici e scegliere Nuovo indice.

  5. Nel campo Nome indice immettere un nome per l'indice.

  6. Nell'elenco a discesa Tipo di indice selezionare Spaziale.

  7. Per specificare la colonna spaziale che si vuole indicizzare, fare clic su Aggiungi.

  8. Nella finestra di dialogo Seleziona colonne da<nome tabella>, selezionare una colonna di tipo geometry o geography selezionando la casella di controllo corrispondente. Le altre colonne spaziali eventualmente presenti diventano non modificabili. Se si desidera selezionare una colonna spaziale diversa, è innanzitutto necessario deselezionare la colonna attualmente selezionata. Al termine, fare clic su OK.

  9. Verifica la selezione delle colonne nella griglia colonne chiave dell'indice.

  10. Nel riquadro Selezionare una pagina della finestra di dialogo Proprietà indice, fare clic su Spaziale.

  11. Nella pagina Spaziale specificare i valori che si vogliono usare per le proprietà spaziali dell'indice.

    Quando si crea un indice su una colonna di tipo geometry, è necessario specificare le coordinate (X-min,Y-min) e (X-max,Y-max) del riquadro di delimitazione. Per un indice su una colonna di tipo geography, i campi del rettangolo di delimitazione diventano di sola lettura dopo aver specificato lo schema di suddivisione griglia Geography, perché lo schema di suddivisione della griglia Geography non usa un rettangolo di delimitazione.

    Facoltativamente, è possibile specificare valori diversi da quelli predefiniti per il campo Cells Per Object e per la densità della griglia a qualsiasi livello dello schema di tassellazione. Il numero predefinito di celle per oggetto è 16 per SQL Server 2008 (10.0.x) o 8 per SQL Server 2012 (11.x) o versione successiva, e la densità della griglia predefinita è Media per SQL Server 2008 (10.0.x).

    È possibile selezionare GEOMETRY_AUTO_GRID or GEOGRAPHY_AUTO_GRID per lo schema di tassellatura in SQL Server. Quando si seleziona GEOMETRY_AUTO_GRID o GEOGRAPHY_AUTO_GRID, le opzioni Livello 1, Livello 2, Livello 3 e Livello 4 per la densità della griglia sono disabilitate.

    Per ulteriori informazioni su queste proprietà, vedere la Guida di F1 delle proprietà dell'indice.

  12. Fare clic su OK.

Note

Per creare un altro indice spaziale nella stessa colonna spaziale o in una colonna diversa, ripetere i passaggi precedenti.

Per creare un indice spaziale tramite Progettazione tabelle in Management Studio

Per creare un indice spaziale in Progettazione tabelle
  1. In Esplora oggetti fare clic con il pulsante destro del mouse sulla tabella per la quale si vuole creare un indice spaziale e scegliere Progetta.

    La tabella verrà visualizzata in Progettazione tabelle.

  2. Selezionare una colonna geometry o geography per l'indice.

  3. Scegliere Indice spaziale dal menu Progettazione tabelle.

  4. Nella finestra di dialogo Indici spaziali fare clic su Aggiungi.

  5. Selezionare il nuovo indice dall'elenco Indice spaziale selezionato e impostarne le proprietà nella griglia a destra.

Per modificare un indice spaziale

Per eliminare un indice spaziale

Per eliminare un indice spaziale tramite Transact-SQL
DROP INDEX (Transact-SQL)

Per eliminare un indice utilizzando Management Studio
Eliminare un indice

Per eliminare un indice spaziale tramite Progettazione tabelle in Management Studio

Per eliminare un indice spaziale in Progettazione tabelle
  1. In Esplora oggetti, selezionare con il pulsante destro del mouse la tabella contenente l'indice spaziale da eliminare, quindi selezionare Progetta.

    La tabella verrà visualizzata in Progettazione tabelle.

  2. Scegliere Indice spaziale dal menu Progettazione tabelle.

    Verrà visualizzata la finestra di dialogo Indice spaziale .

  3. Fare clic sull'indice da eliminare nella colonna Indice spaziale selezionato .

  4. Fai clic su Elimina.

Restrizioni relative agli indici spaziali

Un indice spaziale può essere creato solo in una colonna di tipo geometry o geography.

Restrizioni per viste e tabelle

È possibile definire indici spaziali solo per una tabella con chiave primaria. Il numero massimo di colonne chiave primaria in una tabella è pari a 15.

La dimensione massima dei record di una chiave di indice è 895 byte. Dimensioni maggiori generano un errore.

Note

I metadati della chiave primaria non possono essere modificati se un indice spaziale è definito in una tabella.

Non è possibile specificare indici spaziali in viste indicizzate.

Restrizioni relative a più indici spaziali

È possibile creare fino a 249 indici spaziali in ognuna delle colonne spaziali in una tabella supportata. La creazione di più di un indice spaziale nella stessa colonna spaziale può essere utile, ad esempio, per indicizzare parametri della suddivisione a mosaico diversi in una sola colonna.

È possibile creare solo un indice spaziale alla volta.

Indici spaziali e parallelismo di processi

Per la compilazione di un indice è possibile utilizzare il parallelismo di processi disponibile.

Restrizioni della versione

Le tassellature spaziali introdotte in SQL Server 2012 (11.x) non possono essere replicate in SQL Server 2008 R2 (10.50.x) o SQL Server 2008 (10.0.x). È necessario usare tassellature spaziali di SQL Server 2008 R2 (10.50.x) o SQL Server 2008 (10.0.x) per gli indici spaziali quando la compatibilità con le versioni precedenti di SQL Server 2008 R2 (10.50.x) o sql Server 2008 (10.0.x) è un requisito.

Vedere anche

Panoramica degli indici spaziali