Використання SQL Server Profiler

Одним з моїх найулюбленіших інструментів є SQL Server Profiler, який часто називають просто Profiler Ця утиліта відображає дані про будь-якій кількості деталізованих подій SQL Server Ці події сервера можна переглядати у вікні Trace Properties (рис 493), а також записувати у файл або таблицю для подальшого аналізу Для реєстрації всіх подій або їх обраного підмножини можна встановити фільтри

Puc 492 У даному прикладі протокол лічильників буде реєструвати інформацію

про продуктивність 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 (рис 494) У вкладці General цього вікна налаштовується трасування (зокрема, імя, місце розташування файлу і тп), а у вкладці Events Selection визначаються реєстровані події, дані і фільтри Якщо трасування запущена, то ці параметри можна переглядати, але не змінювати Конфігурація трасування може бути збережена у вигляді шаблону, щоб полегшити створення нових трассіровок в майбутньому

Рис 494 Вкладка 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 здатна зібрати для вас таку кількість інформації, яка легко може в одну мить заповнити дисковий пристрій На щастя, пропонований програмою фільтр (рис 495) допоможе вам обмежити цей масив тільки важливими вас даними

прикладі ми обмежуємо це безліч тільки подіями, що відбуваються в базі даних OBXKites

Фільтри використовують комбінацію операторів EQUAL і LIKE, залежну від типу видобутих даних На жаль, ці фільтри застосовуються до вже накопиченим даними, а дані, зібрані для деяких стовпців, можуть виявитися несподіваними Наприклад, якщо ви хочете обмежити трасування тільки пакетами, що працюють з певними стовпцями або таблицями, фільтрація по імені такого обєкта працювати не буде У той же час використання фільтра LIKE з символами макропідстановки в стовпці text data призведе до того, що Profiler відбере тільки ті пакети, які містять імя заданої таблиці

Ще один популярний фільтр, установлюваний в Profiler, відсіває тільки ті пакети, тривалість виконання яких перевищує заданий час Це дозволяє відстежити всі занадто довго виконувані пакети

Установка прапорця Exclude system ID дозволяє відфільтрувати тільки для користувача обєкти

Організація стовпців

Щоб додати стовпець для угруповання, перед тим як клацнути на кнопці Add, виберіть пункт group by в правому стовпчику (він не показаний на малюнку) Пріоритетом стовпців у групах можна керувати за допомогою кнопки Up, збільшуючи його по відношенню до інших стовпцях Будь стовпець, по якому виконується угрупування, відображається у вікні трасування першим, і в міру додавання нових стовпців вони приєднуються до відповідних груп

Використання трасування

Як тільки інформація про події буде зібрана, її можна переглянути у вікні трасування програми Profiler, незважаючи на те, що вважається хорошим тоном накопичувати ці дані в таблиці бази даних Ці дані можна потім проаналізувати, а також виконати над ними інші дії, доступні для даних звичайних таблиць SQL

Після того як файл записаний, його можна відкрити в SQL Server Profiler і переглянути дані Ці дані можна переписати в таблицю для подальшого узагальнюючого аналізу за допомогою команди File ^ Save As

Програма SQL Profiler здатна відтворювати записані трасування, однак обмеження, що накладаються на відтворення, роблять дану можливість малокорисною в більшості баз даних

До того ж весь файл трасування може бути переданий в якості робочого матеріалу в Database Tuning Advisor для тонкої настройки різних запитів

Інтеграція даних монітора продуктивності

Кожен з інструментів – System Monitor і Profiler – пропонує власну унікальну точку зору на стан сервера Ці два набору інформації можна обєднати, щоб проаналізувати весь сценарій з обох точок зору в SQL Server Profiler

Ця прекрасна нова можливість дозволяє побачити загальну картину происхо-

Ноечнка ^його на сервері

2005

Щоб побачити цю багатосторонню картину, слід одночасно створити журнали продуктивності в Performance Monitor і в SQL Server Profiler Нижче описано, як це зробити

1 Конфігуруйте System Monitor саме з тими лічильниками, які захочете переглянути згодом Обовязково при цьому вибирайте правильний масштаб та інші параметри Після цього налаштуйте Counter Log з точно такими ж параметрами

2 Конфігуруйте Profiler з правильним складом що відслідковуються подій Не забудьте про стовпці часу початку і закінчення, щоб згодом інструмент Profiler зміг інтегрувати два журнали Сформуйте для трасування сценарій SQL і закрийте Profiler

3 Вручну запустіть Counter Log Виконайте код Т-SQL, щоб запустити трасування на стороні сервера

4&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Виконайте на сервері код з даними, які хочете проаналізувати

5&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Коли тест буде завершений, зупиніть Counter Log і серверний код трасування

6&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Запустіть Profiler і відкрийте збережений файл трасування

7&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Імпортуйте журнал Counter Log за допомогою команди меню File1^ Import Performance Data

На імпорт журналу утиліта Profiler відреагує відкриттям нової панелі, що відображає діаграму монітора системи (рис 496) Після вибору події в Profiler або часу на діаграмі в моніторі системи обидва цих подання будуть автоматично синхронізуватися Непогано, чи неправда

Щоб побачити всі ці дії на власні очі, завантажте демонстраційний ролик з сайту книги

Рис 496 Утиліта 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:

EXEC sp_trace_setstatus 2, 0

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*