Программирование в Microsoft SQL Server 2000

         

Планы выполнения


Панель планов выполнения Execution Plan Pane окна Query (Запрос) графически отображает последовательность выполнения вашего запроса SQL Server. На рис. 23.1 представлен план выполнения для простого оператора SELECT:

SELECT OilName, LatinName FROM Oils ORDER BY LatinName


увеличить изображение
Рис. 23.1.  Панель плана выполнения Execution Plan Pane окна Query (Запрос).

Совет. Информация, отображаемая в панели плана выполнения Execution Plan Pane, идентична тексту, отображаемому опцией SHOWPLAN базы данных, которая хорошо известна пользователям предыдущих версий SQL Server и все еще присутствует в SQL Server 2000. Если оператор SET SHOWPLAN_ALL ON выполняется как часть сценария в окне Query (Запрос), то результаты будут отображаться в панели сетки Grids Pane. Панель Execution Plan Pane отображает информацию в формате, который понятен большинству людей.

Панель Execution Plan Pane использует довольно большое количество значков для представления операций, которые может выполнить обработчик запросов. Значки описаны в документации SQL Server Books Online, но нет большой необходимости изучать их. Просто наведите курсор мыши на значок и удерживайте некоторое время на нем, после чего отобразится окно подсказки, описывающее не только действие, представляемое значком, но и некоторый объем полезной информации, такой как цена выполнения ввода/вывода I/O, цена загрузки процессора, число строк в операции и итоговая цена операции. Рис. 23.2 показывает окно подсказки для плана выполнения операции кластерного индексного сканирования Clustered Index Scan, представленного на рис. 23.1.


увеличить изображение
Рис. 23.2.  Окно подсказки для операции Clustered Index Scan.

Операции в плане выполнения исполняются слева направо. Окно подсказки для каждой стрелки, соединяющей операции, показывает число строк, выполненных в предыдущей операции и расчетный размер каждой строки, как показано на рис. 23.3.


увеличить изображение
Рис. 23.3.  Окно подсказки для соединительных стрелок.

Помимо отображения операций, которые SQL Server будет исполнять при выполнении определенного запроса, план выполнения также предоставляет механизм для оптимизации запроса. Используя контекстное меню панели плана выполнения Execution Plan Pane, вы можете обновлять статистику, используемую оптимизатором запросов при определении стратегии выполнения, и добавлять индексы для оптимизации производительности.



увеличить изображение

  • В меню Query (Запрос) выберите Show Execution Plan (Показать план выполнения).


  • Примечание. Во время выполнения запроса панель Execution Plan Pane не отображается.

    1. Для выполнения запроса в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).


      Query Analyzer выполнит запрос и отобразит результаты в панели сетки Grids Pane.


      увеличить изображение

    2. Выберите вкладку Execution Plan (План выполнения).


      увеличить изображение



    Добавьте индекс в панели Execution Plan Pane

    1. В панели плана выполнения запроса Execution Plan Pane щелкните правой кнопкой мыши на значке, представляющем операцию Clustered Index Scan
      . Если в итоге значение для этой операции будет составлять 63%, нам следует по возможности ее оптимизировать.
    2. Из контекстного меню выберите Manage Indexes (Управление индексами). Query Analyzer отобразит диалоговое окно Manage Indexes (Управление индексами).



    3. Нажмите кнопку New (Создать). Query Analyzer отобразит диалоговое окно Create New Index (Создание нового индекса).



    4. Введите в качестве имени индекса Oils_PlantParts и выделите строку PlantPartID для включения ее в индекс.



    5. Нажмите OK. Query Analyzer создаст индекс и отобразит его в диалоговом окне Manage Indexes (Управление индексами).



    6. Закройте диалоговое окно Manage Indexes (Управление индексами).
    7. Нажмите кнопку Execute Query (Выполнить запрос)
      в панели инструментов анализатора запросов Query Analyzer, чтобы еще раз выполнить запрос.
    8. В окне запроса выберите вкладку Execution Plan (План выполнения). Операция кластерного индексного сканирования Clustered Index Scan для таблицы Oils будет заменена операцией индексного поиска Index Seek, что в итоге приведет к уменьшению значения для этой операции с 63 процентов до 13.


      увеличить изображение




    Содержание раздела