Оператор Clustered Index Seek инструкции Showplan

Изменения: 12 декабря 2006 г.

Оператор Clustered Index Seek использует поисковые возможности индексов для получения строк из кластеризованного индекса. Столбец Аргумент содержит имя используемого кластеризованного индекса и предикат SEEK:(). Подсистема хранилища использует индекс для обработки только тех строк, которые удовлетворяют данному предикату SEEK:(). Он также может содержать предикат WHERE:(), который подсистема хранилища применяет для всех строк, которые удовлетворяют предикату SEEK:(), но предикат WHERE:() необязателен и не использует индексы для завершения процесса.

Если столбец Аргумент содержит предложение ORDERED, то обработчик запросов определил, что строки необходимо возвращать в том порядке, в котором их отсортировал кластеризованный индекс. Если предложение ORDERED отсутствует, подсистема хранилища выполняет поиск индекса оптимальным способом, без обязательной сортировки выходных данных. Сохранять порядок выходных данных является менее эффективным, чем формировать несортированные выходные данные.

Если указано ключевое слово LOOKUP, выполняется поиск закладок. В SQL Server 2005 с пакетом обновления 2 (SP2) оператор Key Lookup обеспечивает функцию поиска закладок.

Clustered Index Seek — это логический и физический оператор.

Значок оператора Clustered index seekЗначок графического плана выполнения

Примеры

В следующем примере удаляется строка из таблицы с кластеризованным индексом. Результаты плана выполнения показывают, что для получения указанных строк оптимизатор запросов использовал оператор Clustered Index Seek.

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;

Результат плана выполнения оператора Clustered Index Seek показан ниже.

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

См. также

Задачи

Как отобразить фактический план выполнения

Справочник

Оператор Clustered Index Scan инструкции Showplan
Оператор Key Lookup инструкции Showplan

Основные понятия

Справочник по логическим и физическим операторам
Структуры кластеризованного индекса
Отображение планов выполнения с помощью параметров Showplan инструкции SET (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Новое содержимое
  • Добавлено предложение об операторе Key Lookup.

17 июля 2006 г.

Новое содержимое
  • Добавлен раздел «Примеры».