Creare, modificare ed eliminare indici spaziali

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

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 della suddivisione a mosaico 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 .

Nota

Per informazioni sulla relazione degli indici spaziali con la partizione e i 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 oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.

  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 geometria o geografia 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, fai clic su OK.

  9. Verificare la selezione della colonna nella griglia Colonne chiave indice .

  10. Nel riquadro Selezione 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 in una colonna di tipo geometry, è necessario specificare le coordinate (X-min,Y-min) e (X-max,Y-max) del rettangolo di selezione. Per un indice in una colonna del tipo geography i campi del riquadro diventano di sola lettura dopo avere specificato lo schema a mosaico Griglia geografica , perché lo schema a mosaico della griglia geografica non usa un rettangolo di selezione.

    È eventualmente possibile specificare valori non predefiniti per il campo Celle per oggetto e per la densità griglia a qualsiasi livello dello schema a mosaico. 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 altre informazioni su queste proprietà, vedere Guida sensibile al contesto di Proprietà indice.

  12. Fare clic su OK.

Nota

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 informazioni sulle proprietà, vedere Finestra di dialogo Indici spaziali (Strumenti di Visual Database).

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.

Nota

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