Operador de plano de execução Clustered Index Seek

O operador Clustered Index Seek usa a habilidade de busca de índices para recuperar linhas de um índice clusterizado. A coluna Argumento contém o nome do índice clusterizado que está sendo usado e o predicado SEEK:(). O mecanismo de armazenamento usa o índice para processar somente as linhas que satisfazem esse predicado SEEK:(). Ele pode incluir também um predicado WHERE:(), onde o mecanismo de armazenamento avaliará em relação a todas as linhas que satisfizerem o predicado SEEK:(), mas isso é opcional e não usa índices para executar esse processo.

Se a coluna Argumento contiver a cláusula ORDERED, o processador de consulta determinou que as linhas fossem retornadas na ordem em que o índice clusterizado as classificou. Se a cláusula ORDERED não estiver presente, o mecanismo de armazenamento pesquisará o índice em modo ótimo, sem necessariamente classificar a saída. Permitir que a saída retenha sua ordenação pode ser menos eficiente do que produzir saída não-classificada.

Quando a palavra-chave LOOKUP aparecer, então uma consulta de marcador está sendo executada. No SQL Server 2008, o operador de Pesquisa de Códigos fornece a funcionalidade de consulta de marcador.

Clustered Index Seek é um operador lógico e físico.

Ícone do operador Clustered index seekÍcone do plano de execução gráfica

Exemplos

O exemplo a seguir exclui uma linha de uma tabela que tem um índice clusterizado. A saída do plano de execução mostra que o otimizador de consultas usa o operador de Clustered Index Seek para recuperar as linhas especificadas.

USE AdventureWorks;
GO
SET NOCOUNT ON;
GO
SET SHOWPLAN_ALL ON;
GO
SELECT Name
FROM Production.UnitMeasure
WHERE UnitMeasureCode BETWEEN 'Each' AND 'Inch';
GO
SET SHOWPLAN_ALL OFF;

A saída do plano de execução do operador Clustered Index Seek é exibida abaixo.

PhysicalOp 
-----------------------------------------------------------------------
Clustered Index Seek

Argument
-----------------------------------------------------------------------
OBJECT:([AdventureWorks].[Production].[UnitMeasure].[PK_UnitMeasure_UnitMeasureCode]), 
SEEK:([AdventureWorks].[Production].[UnitMeasure].[UnitMeasureCode] >= 
    CONVERT_IMPLICIT(nvarchar(4000),[@1],0) AND 
    [AdventureWorks].[Production].[UnitMeasure].[UnitMeasureCode] 
<= CONVERT_IMPLICIT(nvarchar(4000),[@2],0)) ORDERED FORWARD