Creazione, modifica ed eliminazione di indici spazialiCreate, Modify, and Drop Spatial Indexes

Un indice spaziale consente di eseguire in modo più efficiente determinate operazioni in una colonna con tipo di dati geometry o geography ( colonna spaziale).A spatial index can more efficiently perform certain operations on a column of the geometry or geography data type (a spatial column). In una colonna spaziale è possibile specificare più di un indice spaziale.More than one spatial index can be specified on a spatial column. Ciò è utile, ad esempio, per indicizzare diversi parametri della suddivisione a mosaico in una sola colonna.This is useful, for example, for indexing different tessellation parameters in a single column.

La creazione di indici spaziali è soggetta a un certo numero di limitazioni.There are a number of restrictions on creating spatial indexes. Per altre informazioni, vedere Restrizioni relative agli indici spaziali .For more information, see Restrictions on Spatial Indexes in this topic.

Nota

Per informazioni sulla relazione degli indici spaziali con la partizione e i filegroup, vedere la sezione "Osservazioni" in CREATE SPATIAL INDEX (Transact-SQL).For information about the relationship of spatial indexes to partition and to filegroups, see the "Remarks" section in CREATE SPATIAL INDEX (Transact-SQL).

Creazione, modifica e rimozione di indici spaziali Creating, Modifying, and Dropping Spatial Indexes

Per creare un indice spaziale To create a spatial index

Per creare un indice spaziale tramite Transact-SQLTo create a spatial index by using Transact-SQL
CREATE SPATIAL INDEX (Transact-SQL) CREATE SPATIAL INDEX (Transact-SQL)

Per creare un indice spaziale tramite la finestra di dialogo Nuovo indice in Management StudioTo create a spatial index by using the New Index dialog box in Management Studio

Per creare un indice spaziale in Management StudioTo create a spatial index in Management Studio
  1. In Esplora oggetti connettersi a un'istanza del Motore di database di SQL ServerSQL Server Database Engine , quindi espandere questa istanza.In Object Explorer, connect to an instance of the Motore di database di SQL ServerSQL Server Database Engine and then expand that instance.

  2. Espandere Database, espandere il database che contiene la tabella con l'indice specificato e quindi espandere Tabelle.Expand Databases, expand the database that contains the table with the specified index, and then expand Tables.

  3. Espandere la tabella per la quale si desidera creare l'indice.Expand the table for which you want to create the index.

  4. Fare clic con il pulsante destro del mouse su Indici e scegliere Nuovo indice.Right-click Indexes and select New Index.

  5. Nel campo Nome indice immettere un nome per l'indice.In the Index name field, enter a name for the index.

  6. Nell'elenco a discesa Tipo di indice selezionare Spaziale.In the Index type drop-down list, select Spatial.

  7. Per specificare la colonna spaziale che si vuole indicizzare, fare clic su Aggiungi.To specify the spatial column that you want to index, click Add.

  8. Nella finestra di dialogo Seleziona colonne da < selezionare una colonna di tipo geometry o geography facendo clic sulla casella di controllo corrispondente.In the Select Columns from <table name> dialog box, select a column of type geometry or geography by selecting the corresponding check box. Le altre colonne spaziali eventualmente presenti diventano non modificabili.Any other spatial columns then become uneditable. Se si desidera selezionare una colonna spaziale diversa, è innanzitutto necessario deselezionare la colonna attualmente selezionata.If you want to select a different spatial column, you must first clear the currently selected column. Al termine, fare clic su OK.When finished, click OK.

  9. Verificare la selezione della colonna nella griglia Colonne chiave indice .Verify your column selection in the Index key columns grid.

  10. Nel riquadro Selezione pagina della finestra di dialogo Proprietà indice fare clic su Spaziale.In the Select a page pane of the Index Properties dialog box, click Spatial.

  11. Nella pagina Spaziale specificare i valori che si vogliono usare per le proprietà spaziali dell'indice.On the Spatial page, specify the values that you want to use for the spatial properties of the index.

    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.When creating an index on a geometry type column, you must specify the (X-min,Y-min) and (X-max,Y-max) coordinates of the bounding box. 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.For an index on a geography type column, the bounding-box fields become read-only after you specify the Geography grid tessellation scheme, because geography grid tessellation does not use a bounding box.

    È eventualmente possibile specificare valori non predefiniti per il campo Celle per oggetto e per la densità griglia a qualsiasi livello dello schema a mosaico.Optionally, you can specify nondefault values for the Cells Per Object field and for the grid density at any level of the tessellation scheme. Il numero predefinito di celle per oggetto è 16 per SQL Server 2008SQL Server 2008 o 8 per SQL Server 2012SQL Server 2012 o versione successiva, mentre la densità della griglia predefinita è Media per SQL Server 2008SQL Server 2008.The default number of cells per object is 16 for SQL Server 2008SQL Server 2008 or 8 for SQL Server 2012SQL Server 2012 or higher, and the default grid density is Medium for SQL Server 2008SQL Server 2008.

    È possibile selezionare GEOMETRY_AUTO_GRID o GEOGRAPHY_AUTO_GRID per lo schema a mosaico in SQL ServerSQL Server.You can select GEOMETRY_AUTO_GRID or GEOGRAPHY_AUTO_GRID for tessellation scheme in SQL ServerSQL 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.When GEOMETRY_AUTO_GRID or GEOGRAPHY_AUTO_GRID is selected, then Level 1, Level 2, Level 3, and Level 4 grid density options are disabled.

    Per altre informazioni su queste proprietà, vedere Guida sensibile al contesto di Proprietà indice.For more information about these properties, see Index Properties F1 Help.

  12. Scegliere OK.Click OK.

Nota

Per creare un altro indice spaziale nella stessa colonna spaziale o in una colonna diversa, ripetere i passaggi precedenti.To create another spatial index on the same or a different spatial column, repeat the preceding steps.

Per creare un indice spaziale tramite Progettazione tabelle in Management StudioTo create a spatial index by using Table Designer in Management Studio

Per creare un indice spaziale in Progettazione tabelleTo create a spatial index in Table Designer
  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.In Object Explorer, right-click the table for which you want to create a spatial index, and then click Design.

    La tabella verrà visualizzata in Progettazione tabelle.The table opens in Table Designer.

  2. Selezionare una colonna geometry o geography per l'indice.Select a geometry or geography column for the index.

  3. Scegliere Indice spaziale dal menu Progettazione tabelle.On the Table Designer menu, click Spatial Index.

  4. Nella finestra di dialogo Indici spaziali fare clic su Aggiungi.In the Spatial Indexes dialog box, click Add.

  5. Selezionare il nuovo indice dall'elenco Indice spaziale selezionato e impostarne le proprietà nella griglia a destra.Select the new index in the Selected Spatial Index list, and in the grid to the right, set the properties for the spatial index. Per informazioni sulle proprietà, vedere Finestra di dialogo Indici spaziali (Visual Database Tools).For information about the properties, see Spatial Indexes Dialog Box (Visual Database Tools).

Per modificare un indice spaziale To alter a spatial index

Per eliminare un indice spaziale To drop a spatial index

Per eliminare un indice spaziale tramite Transact-SQLTo drop a spatial index by using Transact-SQL
DROP INDEX (Transact-SQL) DROP INDEX (Transact-SQL)

Per eliminare un indice utilizzando Management StudioTo drop an index by using Management Studio
Eliminare un indice Delete an Index

Per eliminare un indice spaziale tramite Progettazione tabelle in Management StudioTo drop a spatial index by using Table Designer in Management Studio

Per eliminare un indice spaziale in Progettazione tabelleTo drop a spatial index in Table Designer
  1. In Esplora oggetti, selezionare con il pulsante destro del mouse la tabella contenente l'indice spaziale da eliminare, quindi selezionare Progetta.In Object Explorer, right-click the table with the spatial index you want to delete and click Design.

    La tabella verrà visualizzata in Progettazione tabelle.The table opens in Table Designer.

  2. Scegliere Indice spaziale dal menu Progettazione tabelle.On the Table Designer menu, click Spatial Index.

    Verrà visualizzata la finestra di dialogo Indice spaziale .The Spatial Index dialog box opens.

  3. Fare clic sull'indice da eliminare nella colonna Indice spaziale selezionato .Click the index you want to delete in the Selected Spatial Index column.

  4. Fare clic su Elimina.Click Delete.

Restrizioni relative agli indici spaziali Restrictions on Spatial Indexes

Un indice spaziale può essere creato solo in una colonna di tipo geometry o geography.A spatial index can be created only on a column of type geometry or geography.

Restrizioni per viste e tabelleTable and View Restrictions

È possibile definire indici spaziali solo per una tabella con chiave primaria.Spatial indexes can be defined only on a table that has a primary key. Il numero massimo di colonne chiave primaria in una tabella è pari a 15.The maximum number of primary key columns on the table is 15.

La dimensione massima dei record di una chiave di indice è 895 byte.The maximum size of index key records is 895 bytes. Dimensioni maggiori generano un errore.Larger sizes raise an error.

Nota

I metadati della chiave primaria non possono essere modificati se un indice spaziale è definito in una tabella.Primary key metadata cannot be changed while a spatial index is defined on a table.

Non è possibile specificare indici spaziali in viste indicizzate.Spatial indexes cannot be specified on indexed views.

Restrizioni relative a più indici spazialiMultiple Spatial Index Restrictions

È possibile creare fino a 249 indici spaziali in ognuna delle colonne spaziali in una tabella supportata.You can create up to 249 spatial indexes on any of the spatial columns in a supported table. 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.Creating more than one spatial index on the same spatial column can be useful, for example, to index different tessellation parameters in a single column.

È possibile creare solo un indice spaziale alla volta.You can create only one spatial index at a time.

Indici spaziali e parallelismo di processiSpatial Indexes and Process Parallelism

Per la compilazione di un indice è possibile utilizzare il parallelismo di processi disponibile.An index build can use available process parallelism.

Restrizioni della versioneVersion Restrictions

Non è possibile eseguire la replica di schemi a mosaico spaziali introdotti in SQL Server 2012SQL Server 2012 in SQL Server 2008 R2SQL Server 2008 R2 o SQL Server 2008SQL Server 2008.Spatial tessellations introduced in SQL Server 2012SQL Server 2012 cannot be replicated to SQL Server 2008 R2SQL Server 2008 R2 or SQL Server 2008SQL Server 2008. È necessario usare schemi a mosaico spaziali SQL Server 2008 R2SQL Server 2008 R2 o SQL Server 2008SQL Server 2008 per gli indici spaziali quando è necessario garantire la compatibilità con i database di SQL Server 2008 R2SQL Server 2008 R2 o SQL Server 2008SQL Server 2008 .You must use SQL Server 2008 R2SQL Server 2008 R2 or SQL Server 2008SQL Server 2008 spatial tessellations for spatial indexes when backward compatibility with SQL Server 2008 R2SQL Server 2008 R2 or SQL Server 2008SQL Server 2008 databases is a requirement.

Vedere ancheSee Also

Panoramica degli indici spazialiSpatial Indexes Overview