Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00

Лекция 35: Использование SQL Query Аnalyzer и SQL Profiler

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

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

Утилита Profiler в SQL Server 2000 действует аналогично утилите Profiler в SQL Server 7, но она содержит некоторые улучшения. Одним из полезных дополнений является шаблон трассировки (trace template), который можно использовать для создания файлов трассировки. (Трассировку нужно по-прежнему создавать до того, как вы сможете использовать ее для мониторинга операций SQL Server.) В SQL Server трассировки должны были создаваться вручную.

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

  1. Щелкните на кнопке Start, укажите пункт Programs, укажите Microsoft SQL Server и затем выберите Profiler. При первоначальном открытии окна Profiler оно будет пустым. Не будет открыто ни одной панели, и не будет выполняться никакого профилирования в SQL Server.
  2. Чтобы начать создание профилирование, вы должны выбрать для выполнения существующий шаблон трассировки или создать новый шаблон трассировки для выполнения. (Процесс запуска описан на шаге 4.) SQL Server 2000 Profiler предоставляет для выбора целый ряд шаблонов трассировки. Использование этих шаблонов трассировки может сэкономить вам много времен, поскольку вам не нужно создавать трассировку с самого начала. Чтобы увидеть список шаблонов трассировки, щелкните на меню File (Файл), укажите команду Open (Открыть) и выберите пункт Trace Templates (Шаблоны трассировки), чтобы появилось диалоговое окно Open (рис. 35.16).
    Диалоговое окно Open со списком шаблонов трассировки

    Рис. 35.16. Диалоговое окно Open со списком шаблонов трассировки
    Имеются следующие шаблоны трассировки, поставляемые вместе с SQL Server.
    • SQLServerProfilerSP_Counts.tdf. Подсчитывает количество запущенных хранимых процедур. Результаты группируются по именам хранимых процедур и содержат количество запусков соответствующей процедуры.
    • SQLServerProfilerStandard.tdf. Собирает общую информацию о соединениях, выполненных хранимых процедурах и пакетах SQL в порядке их выполнения.
    • SQLServerProfilerTSQL.tdf. Собирает информацию обо всех операторах T-SQL в порядке их поступления в SQL Server от пользователей. Эта трассировка содержит просто операторы T-SQL и моменты времени их запуска.
    • SQLServerProfilerTSQL_Duration.tdf. Выводит запущенные операторы T-SQL, а также время (в миллисекундах), которое потребовалось для выполнения этих операторов.
    • SQLServerProfilerTSQL_Grouped.tdf. Собирает данные, аналогичные тому, что собирает SQLServerProfilerTSQL, но группирует операторы по пользователям, запустившим эти операторы.
    • SQLServerProfilerTSQL_Replay.tdf. Предоставляет подробную информацию о запускавшихся операторах T-SQL. Эта трассировка содержит данные, которые можно использовать для воспроизведения операторов T-SQL в Query Analyzer.
    • SQLServerProfilerTSQL_SPs.tdf . Выводит указанные хранимые процедуры, а также команды T-SQL внутри этих процедур. Результаты выводятся в порядке выполнения.
    • SQLServerProfilerTuning.tdf. Собирает данные о хранимой процедуре и выполнении пакета SQL.
    Эти шаблоны трассировки могут оказаться очень полезными. Например, шаблон трассировки SQLServerProfilerTSQL_Duration может помочь вам в определении операторов T-SQL, на выполнение которых требуется больше всего времени. Эта информация может послужить отправной точкой для оптимизации запроса. Оператор может занимать много времени, потому что он выполняет много работы или, может быть, потому, что он действует неэффективно. Как вы увидите на следующем шаге, для любой трассировки у вас должен использоваться заранее определенный шаблон.
  3. Для запуска трассировки щелкните на File, укажите команду New (Создать) и затем выберите пункт Trace (Трассировка). Появится диалоговое окно Connect to SQL Server (рис. 35.17). В этом диалоговом окне выберите систему SQL Server для трассировки и затем щелкните на кнопке OK.
    Диалоговое окно Connect to SQL Server

    Рис. 35.17. Диалоговое окно Connect to SQL Server
  4. Появится окно Trace Properties (Свойства трассировки) (рис. 35.18). Во вкладке General (Общие) вы можете ввести имя трассировки (поле Trace name) и выбрать шаблон трассировки (trace template), чтобы использовать его как отправную точку. Для данного примера выберите шаблон SQLServerProfilerTSQLDuration. В нижней части вкладки вы можете указать, где хотите сохранять трассировку – в файле (Save in file) и/или в таблице SQL Server (Save in table). Если не установлен ни один из этих флажков, то результаты трассировки будут выводиться только на экран. Кроме того, вы можете задать время окончания трассировки (флажок и поле Enable trace stop time). Это может оказаться очень полезным для долговременных трассировок.
    Вкладка General окна Trace Properties (Свойства трассировки)

    Рис. 35.18. Вкладка General окна Trace Properties (Свойства трассировки)
  5. Далее щелкните на вкладке Events (События) (рис. 35.19).
     Вкладка Events (События) окна Trace Properties

    Рис. 35.19. Вкладка Events (События) окна Trace Properties
    В этой вкладке вы можете выбрать одно или несколько событий, которые будут отслеживаться в данной трассировке. Можно отслеживать целый ряд классов (категорий) событий и конкретных событий. В окне списка Available event classes (Имеющиеся классы событий) содержатся такие классы событий, как Cursors (Курсоры), Errors and Warnings (Ошибки и предупреждения), Locks (Блокировки), Objects (Объекты), Scans (Сканирования), SQL Operators (Операторы SQL), Stored Procedures (Хранимые процедуры), Transactions (Транзакции) и TSQL.
  6. После выбора событий, трассировку которых вы хотите выполнять, щелкните на вкладке Data Columns (Колонки данных) (рис. 35.20). В этой вкладке укажите, сбор каких данных будет выполняться во время данной трассировки. В эти данные можно включать время окончания, идентификатор объекта и т.д.
      Вкладка Data Columns (Колонки данных) окна Trace Properties

    Рис. 35.20. Вкладка Data Columns (Колонки данных) окна Trace Properties
  7. Щелкните на вкладке Filters (Фильтры) (рис. 35.21). В этой вкладке вы можете указывать, нужно ли, чтобы утилита Profiler включала или исключала определенные события. Например, вам следует исключить трассировку самой утилиты Profiler. (Это установка по умолчанию.) Исключая процессы SQL Server, вы делаете окно Profiler менее насыщенным и более удобным для чтения.
  8. По окончании установки параметров щелкните на кнопке Run для запуска данной трассировки. Если вы внесли какие-либо изменения в шаблон трассировки, то рекомендуется сохранить этот модифицированный шаблон трассировки под другим именем с помощью команды Save As меню File. После запуска трассировки в окне Profiler будут выводиться события по мере их возникновения. В соответствии с шаблоном трассировки, выбранным в этом примере, события будут сортироваться по длительности (в миллисекундах). На рис. 35.22 показано окно Profiler с результатами трассировки.
Внимание. Profiler может использовать значительную часть системных ресурсов в условиях большой загруженности системы. Чем больше событий отслеживается в трассировке, тем выше дополнительная нагрузка на систему.
 Вкладка Filters (Фильтры) окна Trace Properties

Рис. 35.21. Вкладка Filters (Фильтры) окна Trace Properties
Выполняемая трассировка

увеличить изображение
Рис. 35.22. Выполняемая трассировка