Планом запиту називається послідовність логічних і фізичних операторів, які повинні бути виконані СУБД для того щоб отримати результат SQL-запиту. Отримання плану запиту може знадобитися в різних ситуаціях, а в першу чергу при завданнях оптимізації запитів.
Я хочу описати три способи отримати план запиту використовуючи інструменти СУБД MS SQL Server, кожен із способів може виявитися кращим в тій чи іншій ситуації.
Отримання плану запиту за допомогою Profiler'а (або Extended Events)
Отримання плану запиту за допомогою Profiler'а (або нового механізму - Extended Events) є, напевно, найбільш популярним способом і причина полягає в тому, що за допомогою Profiler'а можна перехопити інформацію про будь-який запит, що виконується в даний момент екземпляром SQL Server ' а. Типовим, з метою отримання плану запиту, є наведений нижче спосіб роботи з Profiler'ом (в зв'язці з 1С: Підприємство):
- Налаштувати Profiler (або Extended Events) і поставити його на паузу
- Якщо трасування містить дані, очистити вікно трасування
- За допомогою відладчика в 1С: Підприємство зупинитися перед виконанням відповідного запиту
- Зняти Profiler з паузи
- Виконати запит
- зупинити Profiler
- Проаналізувати отриману інформацію
Profiler є інструментом для створення трасувань та управління ними. За допомогою даного інструменту можна отримувати різну інформацію про роботу СУБД. В даному випадку ми будемо використовувати його для отримання інформації про виконуваному запиті, зокрема, для того щоб отримати його план виконання.
Для того щоб отримати план запиту в Profiler слід додати наступні події: