Configurando opções de índice
Ao projetar, criar ou modificar um índice, existem várias opções de índice a serem consideradas. Essas opções podem ser especificadas quando você cria ou recria um índice. Além disso, você pode definir algumas opções de índice a qualquer momento utilizando a cláusula SET da instrução ALTER INDEX.
Opção de índice |
Descrição |
Configuração armazenada em metadados |
Tópico relacionado |
---|---|---|---|
PAD_INDEX |
Define a porcentagem de espaço livre nas páginas de nível intermediário durante a criação do índice. |
Sim |
|
FILLFACTOR |
Define a porcentagem de espaço livre no nível folha de cada página do índice durante a criação do índice. |
Sim |
|
SORT_IN_TEMPDB |
Determina onde serão armazenados os resultados intermediários da classificação, gerados durante a criação do índice. Quando estiver ON, os resultados da classificação serão armazenados no tempdb. Quando estiver OFF, os resultados da classificação serão armazenados no grupo de arquivos ou no esquema de partição no qual o índice resultante será armazenado.
Observação
Se uma operação de classificação não for necessária ou puder ser executada na memória, SORT_IN_TEMPDB será ignorado.
|
Não |
|
IGNORE_DUP_KEY |
Especifica a resposta de erro quando uma operação de inserção tenta inserir valores da chave duplicada em um índice exclusivo. A opção IGNORE_DUP_KEY aplica-se apenas às operações de inserção depois que o índice é criado ou recriado. O padrão é OFF. |
Sim |
|
STATISTICS_NORECOMPUTE |
Especifica se as estatísticas de índice desatualizadas devem ser recalculadas automaticamente. |
Sim |
|
DROP_EXISTING |
Indica que o índice existente deve ser descartado e recriado. |
Não |
|
ONLINE |
Determina se é permitido o acesso simultâneo de usuários aos dados da tabela subjacente ou de índice cluster e qualquer índice não cluster associado durante as operações de índice.
Observação
As operações de índice online estão disponíveis somente nas edições Enterprise, Developer e Evaluation do SQL Server.
|
Não |
|
ALLOW_ROW_LOCKS |
Determina se são utilizados bloqueios de linhas ao acessar os dados do índice. |
Sim |
|
ALLOW_PAGE_LOCKS |
Determina se são utilizados bloqueios de página ao acessar os dados do índice. |
Sim |
|
MAXDOP |
Define o número máximo de processadores que o processador de consultas pode utilizar para executar uma única instrução de índice. Podem ser utilizados menos processadores dependendo da carga de trabalho atual do sistema.
Observação
As operações de índice paralelas estão disponíveis somente nas edições Enterprise, Developer e Evaluation do SQL Server.
|
Não |
|
DATA_COMPRESSION |
Especifica a opção de compactação de dados para a tabela, o número de partição ou o intervalo de partições especificado. As opções são NONE, ROW e PAGE. |
Sim |
Para definir opções em um índice
Definindo opções sem recriação
Utilizando a cláusula SET na instrução ALTER INDEX, você pode definir algumas das seguintes opções de índice sem recriar o índice:
ALLOW_PAGE_LOCKS
ALLOW_ROW_LOCKS
IGNORE_DUP_KEY
STATISTICS_NORECOMPUTE
Essas opções são aplicadas imediatamente ao índice. Só podem ser especificadas outras opções de índice, como FILLFACTOR e ONLINE, quando um índice é criado ou recriado.
Exibindo as configurações das opções de índice
Nem todos os valores de opções de índice são armazenados em metadados. Os valores armazenados em metadados podem ser exibidos nas exibições do catálogo apropriadas. Para examinar as configurações atuais das opções de índices existentes, utilize a exibição do catálogo sys.indexes. Para examinar o valor atual de STATISTICS_NORECOMPUTE, utilize a exibição do catálogo sys.stats. Para obter mais informações, consulte Exibindo informações de índice.
Exemplos
O exemplo a seguir define as opções ALLOW_ROW_LOCKS e IGNORE_DUP_KEY para o índice AK_Product_ProductNumber na tabela Production.Product.
USE AdventureWorks2008R2;
GO
--Verify the current values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
--Set the ALLOW_ROW_LOCKS option OFF and the IGNORE_DUP_KEY option ON.
ALTER INDEX AK_Product_ProductNumber
ON Production.Product
SET (ALLOW_ROW_LOCKS = OFF, IGNORE_DUP_KEY = ON);
GO
--Verify the new values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
Consulte também