Як подивитися план виконання запиту в microsoft sql server

5

Всім привіт! сьогодні ми поговоримо про те, як подивитися план виконання запиту в microsoft sql server, при цьому ми розглянемо кілька способів.

Введення

план виконання запиту 8>–>- це набір конкретних дій, виконання яких приведе sql запит до підсумкового результату.

Іншими словами, план виконання запиту – це те, як саме буде виконуватися призначений для користувача запит, тобто. Як саме буде здійснюватися доступ до вихідних даних, в якому порядку, які конкретні методи будуть використовуватися для вилучення даних з кожної таблиці, які конкретні методи будуть використані для обчислень, фільтрації, статистичної обробки та сортування даних.

План виконання запиту в microsoft sql server – що це таке і для чого потрібно.

Сьогодні ми з вами поговоримо про те, як подивитися план запиту і почати його аналізувати. Однак спочатку обов’язково варто відзначити, що існує кілька типів планів запиту.

Типи планів виконання запиту

Оптимізатор запитів microsoft sql server формує тільки один план виконання для запиту, однак існує кілька типів планів виконання запиту, які можна відобразити за допомогою sql server management studio (ssms).

План виконання

передбачуваний план виконання (estimated execution plan) – це план, створений оптимізатором запитів на основі оцінок.

При створенні передбачуваного плану виконання сам запит і в цілому пакети мови transact-sql не виконуються, тому такий план не містить фактичних метрик використання ресурсів.

Замість цього передбачуваний план відображає найбільш ймовірний план виконання запиту, якому слідував би sql server при фактичному виконанні запиту, а також цей план відображає розрахунковий рух рядків при виконанні декількох операторів в плані.

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

Такий план зручно використовувати в тих випадках, коли запит виконується довго, а нам необхідно подивитися план, який збирається використовувати sql server для даного запиту.

Дійсний план виконання

дійсний план виконання (actual execution plan) – це план, створений оптимізатором запитів після фактичного виконання запиту. Іншими словами, план стає доступним після виконання sql інструкції. Тому такий план відображає фактичні метрики використання ресурсів.

примітка! для того, щоб мати можливість переглядати план виконання запиту користувачі повинні володіти відповідними дозволами на запуск sql запиту, для якого створюється графічний план виконання. Крім того, користувачам слід надати дозвіл showplan для всіх баз даних, згаданих у запиті.

Статистика активних запитів

статистика активних запитів (live query statistics) 8>–>- це план, який створюється в режимі реального часу. Такий план доступний під час виконання sql запиту і оновлюється кожну секунду, що дозволяє нам переглядати динамічний план виконання активного запиту.

Така можливість дозволяє нам аналізувати процес виконання запиту в режимі реального часу в міру передачі управління від одного оператора плану запиту іншому.

Динамічний план запиту відображає загальний хід виконання запиту і поточну статистику виконання на рівні оператора, наприклад, число отриманих рядків, витрачений час, хід виконання оператора і т.д. Так як ці дані доступні в режимі реального часу, щоб їх побачити, не потрібно чекати завершення запиту, така статистика буває корисна для налагодження проблем з продуктивністю запитів. Статистика активних запитів доступна з версії sql server 2016.

Як переглянути план виконання запиту

Переглянути план виконання запиту можна, звичайно ж, за допомогою sql server management studio. При цьому для кожного типу використовується свій спосіб перегляду.

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

примітка! .

За допомогою інтерфейсу ssms

У вікні створення запиту на панелі інструментів натисніть кнопку «показати передбачуваний план виконання» (display estimated execution plan).

В результаті відкриється вкладка»план виконання”. Сам запит, як ви пам’ятаєте, в даний момент виконуватися не буде.

примітка! статистика в microsoft sql server – що це таке і для чого вона потрібна.

З допомогою transact-sql

Той самий план виконання можна отримати за допомогою наступної інструкції мови t-sql

set showplan_xml on;

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

Щоб вимкнути відображення плану необхідно встановити даному параметру значення off.

set showplan_xml off;

Відображення дійсного плану виконання запиту

Фактичний план виконання запиту можна також подивитися кількома способами:

  • за допомогою інтерфейсу sql server management studio
  • за допомогою інструкції мови transact-sql

За допомогою інтерфейсу ssms

У вікні створення запиту на панелі інструментів натисніть кнопку “включити дійсний план виконання” (include actual execution plan).

В результаті, коли ви виконаєте запит, у вас додатково до результатів додасться вкладка «план виконання». В даному випадку, як ви розумієте, сам запит буде виконаний, так як результуючий набір буде сформований.

За допомогою інструкції transact-sql

Той же самий план виконання можна отримати за допомогою наступної інструкції мови t-sql

set statistics xml on;

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

Щоб вимкнути відображення плану, необхідно встановити даному параметру значення off.

set statistics xml off;

Перегляд динамічної статистики запитів

У вікні створення запиту на панелі інструментів натисніть кнопку «включити статистику активних запитів» (include live query statistics).

У підсумку в момент виконання запиту відкриється вкладка» статистика активних запитів”, на якій в режимі реального часу можна буде спостерігати хід виконання запиту в форматі плану запиту.

На сьогодні це все, сподіваюся, матеріал був вам корисний, поки!