Impostare le opzioni di indice

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

Questo argomento descrive come modificare le proprietà di un indice in SQL Server usando SQL Server Management Studio o Transact-SQL.

Contenuto dell'articolo

Prima di iniziare

Limitazioni e restrizioni

  • Le opzioni ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, OPTIMIZE_FOR_SEQUENTIAL_KEY, IGNORE_DUP_KEY e STATISTICS_NORECOMPUTE vengono applicate immediatamente all'indice tramite la clausola SET nell'istruzione ALTER INDEX.
  • Durante la ricompilazione di un indice tramite ALTER INDEX REBUILD o CREATE INDEX WITH DROP_EXISTING, è possibile impostare le opzioni PAD_INDEX, FILLFACTOR, SORT_IN_TEMPDB, IGNORE_DUP_KEY, STATISTICS_NORECOMPUTE, ONLINE, ALLOW_ROW_LOCKS, ALLOW_PAGE_LOCKS, MAXDOP e DROP_EXISTING (solo CREATE INDEX).

Sicurezza

Autorizzazioni

È richiesta l'autorizzazione ALTER per la tabella o la vista.

Utilizzo di SQL Server Management Studio

Per modificare le proprietà di un indice in Progettazione tabelle

  1. In Esplora oggetti fare clic sul segno più per espandere il database contenente la tabella in cui si desidera modificare le proprietà di un indice.
  2. Fare clic sul segno più per espandere la cartella Tabelle .
  3. Fare clic con il pulsante destro del mouse sulla tabella in cui si vogliono modificare le proprietà di un indice e scegliere Progetta.
  4. Scegliere Indici/chiavi nel menu Progettazione tabelle.
  5. Selezionare l'indice che si desidera modificare. Le relative proprietà saranno visualizzate nella griglia principale.
  6. Modificare le impostazioni di tutte le proprietà per personalizzare l'indice.
  7. Fare clic su Close.
  8. Selezionare Salva table_name dal menuFile.

Per modificare le proprietà di un indice in Esplora oggetti

  1. In Esplora oggetti fare clic sul segno più per espandere il database contenente la tabella in cui si desidera modificare le proprietà di un indice.
  2. Fare clic sul segno più per espandere la cartella Tabelle .
  3. Fare clic sul segno più per espandere la tabella nella quale modificare le proprietà di un indice.
  4. Fare clic sul segno più per espandere la cartella Indici .
  5. Fare clic con il pulsante destro del mouse sull'indice di cui si vogliono modificare le proprietà e scegliere Proprietà.
  6. In Selezione paginaselezionare Opzioni.
  7. Modificare le impostazioni di tutte le proprietà per personalizzare l'indice.
  8. Per aggiungere, rimuovere o modificare la posizione di una colonna dell'indice, selezionare la pagina Generale della finestra di dialogo Proprietà indice -nome_indice . Per altre informazioni, vedere Index Properties F1 Help

Utilizzo di Transact-SQL

Per visualizzare le proprietà di tutti gli indici in una tabella

L'esempio seguente mostra le proprietà di tutti gli indici in una tabella nel database AdventureWorks.

SELECT i.name AS index_name
   , i.type_desc
   , i.is_unique
   , ds.type_desc AS filegroup_or_partition_scheme
   , ds.name AS filegroup_or_partition_scheme_name
   , i.ignore_dup_key
   , i.is_primary_key
   , i.is_unique_constraint
   , i.fill_factor
   , i.is_padded
   , i.is_disabled
   , i.allow_row_locks
   , i.allow_page_locks
   , i.has_filter
   , i.filter_definition
FROM sys.indexes AS i
   INNER JOIN sys.data_spaces AS ds
      ON i.data_space_id = ds.data_space_id
   WHERE is_hypothetical = 0 AND i.index_id <> 0
       AND i.object_id = OBJECT_ID('HumanResources.Employee')
;

Per visualizzare le proprietà di un indice

L'esempio seguente imposta le proprietà degli indici nel database AdventureWorks.

ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
    Sales.SalesOrderHeader
SET (
    STATISTICS_NORECOMPUTE = ON,
    IGNORE_DUP_KEY = ON,
    ALLOW_PAGE_LOCKS = ON
    )
;
ALTER INDEX ALL ON Production.Product
REBUILD WITH 
   (
       FILLFACTOR = 80
       , SORT_IN_TEMPDB = ON
       , STATISTICS_NORECOMPUTE = ON
   )
;

Per altre informazioni, vedere ALTER INDEX (Transact-SQL).