Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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




Лекция: Анализ запросов

Если приложение базы данных выполняется не так хорошо или не так быстро, как вы ожидали, в ряде случаев наиболее очевидной реакцией будет модернизация вашего компьютера – увеличить объем оперативной памяти сервера, поставить более быстрый процессор или дополнительный процессор, модернизировать коммуникационные средства – однако это не всегда является наилучшим решением. Иногда проблемы лежат в самом приложении, а чаще всего в запросах, выполняемых приложением. Мы рассмотрим одно из инструментальных средств Microsoft SQL Server, предоставляющее возможность анализа и оптимизации запросов, используемых в вашем приложении.

Вы научитесь:

  • отображать план выполнения SQL-сценария;
  • изменять схему базы данных из панели управления планом выполнения Execution Plan Pane;
  • отображать трассировку сервера для SQL-сценария;
  • отображать клиентскую статистику для SQL-сценария;
  • использовать мастер настройки индексов Index Tuning Wizard для оптимизации схемы базы данных.

Использование Query Analyzer для оптимизации производительности

В добавлении к панели редактирования Editor Pane, окно Query (Запрос) анализатора запросов SQL Server Query Analyzer предоставляет три дополнительных панели для анализа производительности отдельных запросов. Панель Execution Plan Pane содержит графическое представление задач, которые SQL Server будет обрабатывать для выполнения запроса. Панель Trace Pane показывает детальную информацию о выполнении запроса на стороне сервера, включая время и число операций чтения и записи. Панель Client Statistics Pane отображает информацию о выполнении запроса на стороне клиента, включая количество обращений и ответов от сервера и пропускную способность сети.

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

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

SELECT OilName, LatinNameFROM OilsORDER 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, вы можете обновлять статистику, используемую оптимизатором запросов при определении стратегии выполнения, и добавлять индексы для оптимизации производительности.







Отобразите план выполнения запроса

  1. В панели редактирования Editor Pane анализатора запросов Query Analyzer введите следующий оператор Transact-SQL:
 SELECT PlantParts.PlantPart, Count(Oils.OilName) AS NumberOfOilsFROM Oils   INNER JOIN PlantParts       On Oils.PlantPartID = PlantParts.PlantPartIDGROUP BY PlantParts.PlantPart          


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

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

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

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

 

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


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

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

 

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

 

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

 

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

 

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

Трассировка сервера

Вторая утилита Query Analyzer предоставляет возможности анализа производительности запроса через трассировку сервера. Панель Trace Pane показывает команды, которые выполняются на сервере во время исполнения запроса. Команды не соответствуют операциям в плане выполнения – ряд команд выполняется дополнительно, а реальные команды Transact-SQL не будут показаны столь же детально.

Совет. SQL Server 2000 также предоставляет другое средство для выполнения трассировки сервера - SQL Profiler. Утилиту SQL Profiler мы не будем рассматривать в этом курсе.










Последнее изменение этой страницы: 2018-04-11; просмотров: 200.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...