Контакты

Анализ запросов с помощью SQL Profiler. SQL Profiler решает проблемы

Что Вы узнаете из этой статьи?

  • Предназначение инструмента трассировки SQL Profiler
  • Как отследить текст запроса к СУБД, в который транслируется запрос 1С
  • Настройки фильтров трассировки
  • Как выполнить персональную настройку SQL Profiler

Зачастую в работе возникает ситуация, когда запрос в 1С по каким-то причинам работает медленно, но анализ текста запроса не говорит нам о каких-либо проблемах.

В таком случае приходится изучать эту проблему на более низком уровне. Для этого нам нужно посмотреть текcт SQL-запроса и план запроса. Для этого можно использовать SQL Profiler.

SQL Profiler – предназначение

SQL Profiler – это программа, входящая в MS SQL Server, которая предназначена для просмотра всех событий, которые происходят в SQL-сервере. Иначе говоря, она нужна для записи трассировки.

В каких случаях данный инструмент может быть полезен 1С программисту? Прежде всего, можно получить текст запроса на языке SQL и посмотреть его план. Это также можно сделать и в технологическом журнале (ТЖ), но план запроса в ТЖ получается не таким удобным и требует наличия некоторых навыков и умений. К тому же в профайлере можно посмотреть не только текстовый, но и графический план выполнения запроса, что является более удобным.

Также профайлер позволяет узнать:

  • запросы длиннее определенного времени
  • запросы к определенной таблице
  • ожидания на блокировках
  • таймауты
  • взаимоблокировки и т. д.

Анализ запросов с помощью SQL Profiler

Зачастую Profiler применяется именно для анализа запросов. И при этом нужно анализировать не все исполняемые запросы, а то, как определенный запрос на языке 1С транслируется в SQL, и обращать внимание на его план выполнения.

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

Для отслеживания запроса в трассировке выполняем следующие шаги:

1. Запускаем SQL Profiler: Пуск - Все программы - Microsoft SQL Server 2008 R2 - Средства обеспечения производительности - SQLProfiler .

2. Создаем новую трассировку: Файл – Создать трассировку (Ctrl+N).

3. Указываем сервер СУБД, на котором находится наша база данных и нажимаем Соединить :

Нам ничто не мешает выполнять трассировку сервера СУБД, находящегося на любом другом компьютере.

4. В появившемся окне Свойства трассировки переключаемся на закладку Выбор событий :

Так как нам нужны запросы и планы запросов, то необходимо включить соответствующие события. Для показа полного списка свойств и событий включаем флаги Показать все события и Показать все столбцы . Теперь необходимо выбрать только события, приведенные на рисунке ниже, остальные же – требуется отключить:

Описание этих событий:

  • ShowplanStatisticsProfile– текстовый план выполнения запроса
  • ShowplanXMLStatisticsProfile– графический план выполнения запроса
  • RPC:Completed– текст запроса, если он выполняется как процедура (если выполняется запрос 1С с параметрами)
  • SQL:BatchCompleted– текст запроса, если он выполняется как обычный запрос (если выполнялся запрос 1С без параметров)

6. На этом этапе необходима настройка фильтра для выбранных событий. Если фильтр не установлен, то мы будем видеть запросы для всех БД, расположенных на данном сервере СУБД. По кнопке Фильтры столбцов устанавливаем фильтр по имени базы данных:

Теперь мы видим в трассировке только запросы к БД «TestBase_8_2».

Также можно поставить фильтр и по другим полям, наиболее интересные из них:

  • Duration (длительность)
  • TextData (обычно это текст запроса)
  • RowCounts (количество строк, возвращаемых запросом)

Допустим, нам необходимо «отловить» все запросы к таблице «_InfoRg4312» длительностью более 3-х секунд в базе данных «TestBase_8_2». Для этого необходимо:

a) Установить фильтр по базе данных (см. выше)
b) Установить фильтр по длительности (устанавливается в миллисекундах):

c) Установить фильтр по тексту запроса:

Для задания фильтра по тексту запроса используем маску. В случае необходимости отслеживать запросы, которые обращаются к нескольким таблицам, создается несколько элементов в разделе «Похоже на». Наложенные условия фильтров работают совместно.

7. Теперь запускаем трассировку с помощью кнопки Запустить в окне Свойства трассировки и наблюдаем события, попадающие под установленные фильтры, отображение которых было настроено.

Кнопки командной панели служат для управления трассировкой:

Назначение кнопок:

  • Ластик – очищает окно трассировки
  • Пуск – запускает трассировку
  • Пауза – ставит трассировку на паузу, при нажатии на Пуск трассировка возобновляется
  • Стоп – останавливает трассировку

8. Окно трассировки состоит из двух частей. В верхней части находятся события и их свойства, в нижней – информация, зависящая от типа событий. Для нашего примера здесь будет отображаться либо текст запроса, либо его план.

9. Запустим на выполнение запрос в консоли запросов 1С и посмотрим, как он отразится в профайлере:

По поведению трассировки видно, что запросов в итоге получилось несколько, и только один из них нам интересен. Остальные запросы – служебные.

10. Свойства событий дают возможность оценить:

  • сколько секунд выполнялся запрос (Duration)
  • сколько было логических чтений (Reads)
  • сколько строк запрос вернул в результате (RowCounts) и т.д.

В нашем случае запрос выполнялся 2 миллисекунды, сделал 4 логических чтения и вернул 1 строку.

11. Если взглянуть на одно событие выше, то можно увидеть план запроса в графическом виде:

Из плана видно, что поиск осуществляется по индексу по цене, этот план нельзя назвать идеальным, так как индекс не является покрывающим, поля код и наименование получаются с помощью KeyLookup, что отнимает 50% времени.

Используя контекстное меню, полученный графический план запроса возможно сохранить в отдельный файл с расширением *.SQLPlan и открыть его в профайлере на другом компьютере или с помощью программы SQL Sentry Plan Explorer, которая является более продвинутой.

12. Если подняться еще выше, то мы увидим тот же план запроса, но уже в текстовом виде. Именно этот план отображается в ТЖ, ЦУП и прочих средствах контроля производительности 1С.

  • В формат самого профайлера, то есть с расширением *.trc
  • В формат xml
  • Сделать из трассировки шаблон (См. следующий пункт)
  • Cохранить полученную трассировку в виде таблицы базы данных. Это весьма удобный способ, когда, к примеру, нужно найти самый медленный запрос в трассировке или отфильтровать запросы по какому-либо параметру.

Затем выбираем базу данных на указанном сервере, указываем имя таблицы, куда будет сохранена трассировка. Можно использовать существующую таблицу, или дать ей новое имя, и тогда эта таблица будет создана автоматически.

Теперь возможно строить запросы любой сложности к нашей таблице: к примеру, искать наиболее долго выполняющиеся запросы.

Также нужно помнить, что Duration сохраняется в таблицу в миллионных долях секунды, и при выводе результата нужно переводить значение в миллисекунды. Также в таблице присутствует столбец RowNumber, показывающий номер данной строки в трассировке.

14. При частом использовании профайлера для анализа запросов постоянная настройка нужных событий и фильтров будет постоянно отнимать у вас много времени.

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

Для создания шаблона используем меню Файл – Шаблоны – Новый шаблон :

На первой закладке указываем тип сервера, имя шаблона и при необходимости ставим флаг для использования данного шаблона по умолчанию.

На второй закладке делаем выбор нужных событий и осуществляем настройку фильтров (как было показано выше).

При создании новой трассировки можем указать нужный шаблон, и тогда на второй закладке все фильтры и события заполнятся автоматически по созданному шаблону.

Бурмистров Андрей

При разработке прикладных модулей системы Lexema.ru периодически возникает потребность в анализе запросов к БД при работе экранных форм, запросов, отчётов, хранимых процедур и других объектов для диагностирования проблем. Для решения подобных задач предназначены инструменты профилирования SQL-запросов. Они позволяют:

  • отслеживать события разных типов на сервере БД (выполнение запросов, хранимых процедур и т.п.)
  • фильтровать события по различным критериям (имя БД, логин пользователя и т.п.)
  • записывать последовательность действий в виде трассировки событий. В последствии трассировка может быть проанализирована, а также сохранена в файл или в БД.
  • анализировать производительность (скорость выполнения) запросов для поиска и устранения "узких мест" системы
  • и т.п.

В данной статье рассмотрены два инструмента:

  • Lexema SQL Profiler, встроенный в моделлер приложения
  • MS SQL Server Profiler, входящий в состав MS SQL Server

Lexema SQL Profiler

Данный инструмент предназначен для анализа запросов к серверу БД, инициируемых моделлером - программой для разработки прикладных конфигураций. С его помощью можно исследовать структуру БД прикладной логики и её объектов.

Для использования Lexema SQL Profiler запустите моделлер приложения. Нажмите на кнопку с изображением бочки в левом верхнем углу окна:

Для начала записи трассировки SQL-запросов моделлера к серверу БД нажмите кнопку "Запустить" на панели инструментов.

Выполните в моделлере действия, для которых требуется изучить запросы к БД. Например, после открытия списка моделей будет создана трассировка из нескольких запросов:

Таблица сверху содержит список событий (SQL-запросов), поле внизу - содержимое (SQL-код)

Поля таблицы:

  • EventClass
  • TextData
  • Duration
  • StartTime
  • EndTime
  • ApplicationName
  • Reads
  • Writes
  • Transaction

К примеру, из трассировки событий при открытии списка моделей можно сделать следующие выводы: запрашиваются данные из трёх таблиц (L8_Model, L8_ModelProperty и L8_Namespace); самый длительный запрос производится к таблице L8_ModelProperty (242 мс).

MS SQL Server Profiler

MS SQL Server Profiler - это инструмент, входящий в состав пакета MS SQL Server, позволяющий перехватывать события сервера БД. События могут быть сохранены в файле трассировки или в БД для дальнейшего анализа или использования с целью повторения определенной серии шагов для воспроизведения проблемы для её диагностики. Типовые сценарии использования SQL Server Profiler:

  • контроль производительности экземпляра SQL Server Database Engine
  • отладка инструкций Transact-SQL и хранимых процедур
  • анализ производительности путем выявления медленно работающих запросов
  • выполнение стресс-тестирования и контроля качества посредством воспроизведения трассировок
  • воспроизведение трассировки одного или нескольких пользователей
  • проверка инструкций Transact-SQL и хранимых процедур на стадии разработки проекта в пошаговом режиме для гарантии правильного выполнения кода
  • устранение проблем в SQL Server с помощью перехвата событий в производственной системе (production-версии) и воспроизведения их в отладочной (тестовой версии). Это очень полезная возможность, поскольку позволяет во время проверки или отладки продолжать использовать производственную систему.
  • аудит и отслеживание действий, происходящих в экземпляре SQL Server. Эта возможность позволяет администратору безопасности просматривать любые события аудита, в частности успешные и неудачные попытки входа в систему и разрешений доступа к инструкциям и объектам
  • сохранение результатов трассировки в формате XML, что обеспечивает стандартизованную иерархическую структуру хранения результатов трассировки. Это позволяет вносить изменения в существующие трассировки или создавать их вручную для последующего воспроизведения
  • статистический анализ результатов трассировки, позволяющий производить группирование и анализ похожих классов событий. В результатах содержатся счетчики, полученные на основе группирования по одному столбцу
  • предоставление возможности создания трассировки пользователям, не являющимся администраторами
  • настройка шаблонов трассировки, которые затем могут быть использованы для последующих трассировок

Запуск и подключение к серверу

Запустить MS SQL Server Profiler можно из меню ОС Windows (меню "Пуск") или из меню программы MS SQL Server Management Studio (пункт Сервис - "SQL Server Приложение Profiler"). После запуска необходимо авторизоваться на сервере - ввести адрес сервера, имя учётной записи и пароль:

Настройка параметров трассировки

Затем перед началом трассировки необходимо задать её свойства:

  • Имя трассировки - целесообразно задавать в том случае, если её планируется сохранить
  • Использовать шаблон - определяет конфигурацию трассировки по умолчанию. А именно, он включает классы событий, которые нужно контролировать в SQL Server Profiler. Например, можно создать шаблон, указывающий используемые события, столбцы данных и фильтры.Шаблоны не выполняются, а сохраняются в файлах с расширением TDF.После сохранения шаблон управляет захватом данных, если запускается трассировка, основанная на этом шаблоне.
  • Сохранить в файл с целью повторного открытия и анализа
  • Сохранить в таблицу - в этому случае трассировка будет сохранена в БД и её можно будет анализировать средствами SQL
  • Включить время остановки трассировки - необходимо в случае длительных наблюдений

Выбор типов событий и их атрибутов

Важным шагом настройки трассировки является выбор событий (необходимо перейти на соответствующую вкладку). Вкладка "Выбор событий" содержит сетку - таблицу, которая содержит каждый из классов событий, доступных для трассировки. На каждый класс событий в таблице приходится по одной строке. Классы событий могут незначительно различаться в зависимости от типа и версии сервера, к которому они подключены. Классы событий идентифицируются в столбце События сетки и группируются по категориям событий. В оставшихся столбцах перечислены столбцы данных, которые могут быть возвращены для каждого класса событий. Чтобы включить события в трассировку, установите флажок в столбце События.

По умолчанию данный список содержит только некоторые категории и типы событий в соответствии с выбранным шаблоном (см. выше). Также отображаются не все столбцы. Для более детальной настройки рекомендуется поставить галочки "Показать все события" и "Показать все столбцы".

Если трассировка производится для отслеживания запросов, производимых приложением Lexema.ru, достаточно будет отметить 3 типа события в 2х группах:

  • Stored Procedures (хранимые процедуры)
    • RPC:Completed - происходит при завершении удалённого вызова процедуры (RPC)
    • SP:Completed - происходит при завершении хранимой процедуры
  • TSQL - отслеживание выполнения инструкций TransactSQL, передаваемых клиентами на сервер БД
    • SQL:BatchCompleted - возникает при завершении выполнения инструкции TransactSQL

Примечание : флажок в столбце Events может находится в трёх состояниях:

  • галочка отсутствует - событие не отслеживается
  • установлена чёрная галочка - выбраны все столбцы данных - для выбранного события будут собираться все возможные для него данные
  • установлена серая галочка - выбраны только некоторые столбцы данных - для выбранного события будут собираться только некоторые данные в соответствии с отметками в столбцах

По умолчанию для некоторых событий выбраны не все столбцы (стоит серая галочка). Для выбора всех столбцов необходимо снять галочку и установить её заново. При этом будут установлены галочки для всех видимых столбцов данных.

Ниже перечислены другие полезные категории и типы событий:

  • Security Audit

Настройка параметров фильтрации

Фильтры ограничивают накопление событий в трассировке. Если фильтр не установлен, то на выход трассировки возвращаются все события выбранных классов событий. Установка фильтра трассировки необязательна, однако фильтр минимизирует затраты ресурсов при трассировке. Фильтры для определений трассировки добавляются на вкладке "Выбор событий" в диалоговом окне "Свойства трассировки" или "Свойства шаблона трассировки".

При отслеживании событий, происходящих при использовании веб-интерфейса Lexema.ru конкретным пользователем, целесообразно установить фильтр "ApplicationName" похоже на <логин_пользователя>+&1, например, "PetrovAN&1", где PetrovAN - логин пользователя:

При такой настройке фильтра в трассировку попадут только события, генерируемые действиями указанного пользователя.

Отслеживание событий

Предположим, что после выставления настроек, описанных выше и запуска трассировки, пользователь с логином "airat" входит в систему и открывает реестр категорий доходов и расходов модуля "Домашняя бухгалтерия", а затем открывает один из документов (в качестве примера):

В результате в трассировке SQL Server Profiler будет отображён список событий:

Анализируя список событий трассировки можно увидеть, что одним из самых длительных запросов был следующий:

exec sp_executesql N "SELECT AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS , AS FROM " , N "@PrimaryKeyBoundary bigint,@TopCount bigint" , @ PrimaryKeyBoundary = NULL , @ TopCount = NULL

Судя по названию объекта (VTransactionCategory), это запрос на выборку списка категорий транзакций. Тип данного события - RPC:Completed (завершение выполнения удалённой процедуры).

Также в списке можно видеть событий типа SQL:BatchCompleted:

Это результат выполнения запроса (QuerySource) Lexema.ru.

Для поиска в тексте запросов, отслеженных в трассировке, необходимо нажать кнопку "Найти строку" (со значком бинокля) на панели инструментов или нажать комбинацию клавиш Ctrl+F:

Затем необходимо ввести искомый текст и выбрать столбец для поиска (текст запроса содержится в столбце TextData). После нажатия на кнопку "Следующий" курсор будет позиционирован на строку события, содержащего искомый текст.

В целях тестирования и отладки данные запросы могут быть выполнены повторно вручную. Для этого необходимо скопировать их текст, открыть SQL Server Management Studio, подключиться к соответствующему серверу, выбрать БД, создать запрос, вставить его текст и выполнить.

Программный продукт SQL Server Profiler представляет собой графическую оболочку, предназначенную для создания трассировок и анализа результатов трассировок. События сохраняются в файле трассировки, который затем может быть проанализирован или использован для воспроизведения определенных последовательностей шагов для выявления возникших проблем.

Для того чтобы отследить действия, выполняющиеся в данный момент, необходимо запустить MS SQL Profiler, создать новую трассу и настроить анализ показателей:

На вкладке «Общие» необходимо указать название трассировки. Указать, куда будут сохраняться данные снятой трассы — на файл и/или в таблицу базы данных.

Большой интерес представляет вкладка «Выбор событий»:

На данной странице указываются события, которые необходимо отслеживать. На этом примере укажем данные, необходимые для отслеживания планов запросов.

Получите 267 видеоуроков по 1С бесплатно:

По умолчанию трассировка проходит по всем указанным событиям во всех базах данных. Для того чтобы наложить отборы на получаемые данные, необходимо нажать кнопку «Фильтры столбцов …»:

Например, установим отбор по идентификатору информационной базы (Узнать ID базы можно с помощью запроса SELECT DB_ID(N’ИмяБазы’)).

Запуск трассировки в Profiler для 1С

После того как все настройки сделаны, осталось запустить отслеживание, для этого необходимо нажать «Запустить» (RUN). С этого момента в трассировку начнут попадать все действия, указанные в фильтре:

Например, я запускаю трассу на время проведения документа «Поступления товаров и услуг» с целью отследить самые трудозатратные операции.

После того как трассировка получена, необходимо её проанализировать.

Анализ данных из Profiler

Для анализа полученную трассировку можно сохранить либо в файл, либо в таблицу. Мы сохраним в таблицу базы данных:

Одним из моих самых любимых инструментов является SQL Server Profiler, который часто называют просто Profiler. Эта утилита отображает данные о любом количестве детализированных событий SQL Server. Эти события сервера можно просматривать в окне Trace Properties (рис. 49.3), а также записывать в файл или таблицу для последующего анализа. Для регистрации всех событий или их избранного подмножества можно установить фильтры.

Puc. 49.2. В данном примере протокол счетчиков будет регистрировать информацию

о производительности SQL Server в каталоге С: \ Perf Logs

Утилиту SQL Server Profiler можно запустить из меню Tools программы Management Studio или непосредственно из папки SQL Server 2005 системного меню Пуск. Для просмотра действий вам необходимо либо определить новую трассировку, либо воспользоваться уже существующим файлом.

С выходом пакета обновлений SP1 SQL Server Profiler получил возможность Внимание! выполнять трассировку крупных массивов данных на больших компьютерах.

Кроме того, ранее при мониторинге службы анализа время отображалось в единицах универсального синхронизированного времени (UTC). Теперь используется локальное системное время. Ранее успешно воспроизведенные события подсчитывались некорректно, в результате пользователь получал некорректную статистику. Эта проблема была устранена.

Определение новой трассировки

Когда создается новая трассировка (либо с помощью команды меню File^New Trace, либо с помощью кнопки New Trace панели инструментов), создается также новое подключение к SQL Server и открывается диалоговое окно Trace Properties (рис. 49.4). Во вкладке General этого окна настраивается трассировка (в частности, имя, местоположение файла и т.п.), а во вкладке Events Selection определяются регистрируемые события, данные и фильтры. Если трассировка запущена, то эти параметры можно просматривать, но не изменять. Конфигурация трассировки может быть сохранена в виде шаблона, чтобы облегчить создание новых трассировок в будущем.

Рис. 49.4. Вкладка Events Selection окна Trace Properties позволяет отобрать события, отслеживаемые утилитой Profiler

Трассировку можно просматривать в реальном времени, однако эти данные могут одновременно записываться в файл или таблицу SQL Server. Это полезно для последующего интеллектуального анализа, сравнения с данными счетчиков монитора системы или для импорта в утилиту Database Engine Tuning Advisor.

Когда показания записываются в файл, для повышения производительности они объединяются в цепочки по 128 Кбайт; аналогично, при записи в таблицу данные группируются по несколько строк.

Чтобы сохранить данные, полученные программой Profiler, для последующего анализа, используйте высокопроизводительный файловый метод, а также серверную трассировку (о ней мы поговорим позже). Если вы хотите анализировать данные с помощью инструкций Т-SQL, используйте точно такой же подход, но после завершения сеанса трассировки откройте полученный файл в утилите Profiler и выберите в меню команду File^Save As^Table.

Отбор событий

Во вкладке Events Selection определяется состав действий, выполняемых сервером баз данных, которые будут регистрироваться утилитой Profiler. Подобно монитору производительности, Profiler может отслеживать множество ключевых событий SQL Server. Для упрощения настройки отбора можно использовать шаблоны, предлагаемые по умолчанию.

I Событие SQL Batch Completed основано на выполнении пакетов Т-SQL в

SVS целом (разделенных терминаторами пакетов), а не отдельных их инструкций.

| * Исходя из этого, Profiler регистрирует данные всего об одном событии, незави-

Симо от длины пакета. Для регистрации выполнения отдельных инструкций

DML используйте событие SQL Statement Complete.

Для воспроизведения трассировки можно использовать далеко не все события. Например, событие SQL Batch Start может быть воспроизведено, а событие SQL Batch Complete - нет.

В зависимости от событий для трассировки становятся доступными разные данные. Несмотря на то что столбец данных SPID кажется необязательным, это впечатление обманчиво - он обязателен.

Фильтрация событий

Программа Profiler способна собрать для вас такое количество информации, которая легко может в мгновение ока заполнить дисковое устройство. К счастью, предлагаемый программой фильтр (рис. 49.5) поможет вам ограничить этот массив только интересующими вас данными.

Рис. 49.6. Утилита SQL Server Profiler способна интегрировать данные монитора производительности и синхронизировать их с отслеженными событиями

Использование SQL Trace

Программу SQL Profiler обычно используют интерактивно, и для непостоянного сбора данных ее вполне достаточно. Однако длительные трассировки способны с легкостью накопить сотни тысяч записей, что может вызвать вполне конкретные проблемы на рабочей станции, выполняющей трассировку. Решение сводится к созданию журнала трассировки непосредственно на сервере. Такая трассировка вызовет небольшую дополнительную нагрузку на сервер; при этом файлы будут записываться блоками по 128 Кбайт.

В промышленных системах, осуществляющих трассировку на стороне сервера, запись данных в файл на сервере является лучшим способом сбора информации

о производительности при минимизации дополнительной нагрузки на сервер.

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

Когда трассировка сконфигурирована и протестирована в SQL Server Profiler, выберите в меню команду File^Export^Trace Definition^For SQL Server 2005, чтобы сгенерировать сценарий T-SQL, способный выполнять трассировку на стороне сервера.

I Чтобы узнать, какие трассировки запущены на сервере, выполните запрос к ди-

SVS намическому представлению управления systraces. Когда вы посмотрите на I * результаты этого запроса, то увидите дополнительную трассировку. Первый * номер всегда имеет так называемая трассировка по умолчанию, которая собирает данные для журналов SQL Server, - ее невозможно остановить.

Для остановки серверной трассировки используйте системную хранимую процедуру sp_trace_setstatus. Первый ее аргумент (traceid) является идентификатором трассировки, а второй определяет характер действия. Нулевое значение параметра действия приводит к остановке трассировки, единица - к ее запуску, а двойка - к закрытию и удалению. В следующем коде останавливается трассировка с номером 2.

В этой лекции мы продолжим изучение хранимых процедур, которое начали в "Создание хранимых процедур и управление этими процедурами" . Вы узнаете, как анализировать хранимые процедуры и другие операторы T- SQL с помощью анализатора запросов Microsoft SQL Server Query Analyzer и профайлера SQL Server Profiler. Из этого анализа вы сможете определять, насколько эффективны операторы T- SQL . Эффективный запрос SQL Server использует подходящую последовательность операций и подходящие индексы для снижения количества обрабатываемых строк и минимизации количества операций ввода-вывода.

Используя Query Analyzer , вы можете видеть план исполнения , выбранный для оператора T- SQL оптимизатором запросов SQL Server . Оптимизатор запросов – это внутренний модуль , который ищет наилучший план исполнения для каждого оператора T- SQL . Оптимизатор запросов анализирует каждый оператор T- SQL , просматривает ряд возможных планов исполнения и выполняет оценку "стоимости" каждого плана с точки зрения требуемых ресурсов и времени обработки. Выбирается план с наименьшей стоимостью. Стоимость каждого плана определяется на основе имеющейся статистики, которая собрана системой и может оказаться устаревшей. Поскольку вы можете знать больше о вашей базе данных и ваших данных, чем оптимизатор запросов , то, возможно, вам удастся создать план, который окажется лучше, чем у оптимизатора запросов. Используя информацию, которую выдает Query Analyzer , вы можете определить, будет ли эффективным план оптимизатора запросов для определенного оператора, и если нет, то вы можете попытаться оптимизировать данный оператор, модифицируя его или используя подсказку SQL . В этой лекции вы узнаете, как оптимизировать операторы T- SQL , что будет дополнением к изучению использования Query Analyzer .

Используя Profiler, вы можете анализировать операции внутри вашей системы SQL Server , чтобы определять, какие операторы SQL и хранимые процедуры используют излишние системные ресурсы. Обладая этой информацией, вы можете сосредоточить свои усилия по настройке в первую очередь на этих операторах и хранимых процедурах. Кроме описания того, как использовать Profiler, в этой лекции также показано, как наиболее эффективно использовать информацию, получаемую с помощью Profiler.

Использование SQL Query Аnalyzer

Утилита Query Analyzer поставляется вместе с Microsoft SQL Server 2000 взамен



Понравилась статья? Поделитесь ей