Контакти

Аналіз запитів за допомогою 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
  • Зробити з трасування шаблон (Див. Наступний пункт)
  • Збережемо отриману трасування у вигляді таблиці бази даних. Це дуже зручний спосіб, коли, наприклад, потрібно знайти самий повільний запит в трасуванні або відфільтрувати запити по якомусь параметру.

Потім вибираємо базу даних на зазначеному сервері, вказуємо ім'я таблиці, куди буде збережена трасування. Можно використовувати існуючу таблицю, Або дати їй нове ім'я, і \u200b\u200bтоді ця таблиця буде створена автоматично.

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

Також потрібно пам'ятати, що 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 може знаходиться в трьох станах:

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

За замовчуванням для деяких подій обрані не всі стовпці (варто сіра галочка). Для вибору всіх стовпців необхідно зняти галочку і встановити її заново. При цьому будуть встановлені галочки для всіх видимих \u200b\u200bстовпців даних.

Нижче перераховані інші корисні категорії і типи подій:

  • 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 \u003d NULL, @ TopCount \u003d 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 замість



Сподобалася стаття? поділіться їй