Аналіз запитів

Після ознайомлення з основами індексів і сторінок SQL Server другим етапом в освоєнні налаштування індексів є розгляд плану виконання запиту Це передбачає вміння читати план виконання та ідентифікувати дії, які оптимізатор вирішив вжити для виконання запиту

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

Ще однією моєю улюбленою складовою частиною SQL Server є редактор запитів (Query Editor), що відображає план виконання запиту Ви можете переглянути або попередній, або точний план – обидві ці функції доступні на панелі інструментів, а також в меню Query

І в оціночному, і в точній плані виконання запиту містяться одні й ті ж логічні операції Єдиною відмінністю є те, що останній можна переглянути лише після виконання запиту

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

План запиту слід читати зліва направо, як показано на рис 503 Кожна логічна операція представляється у вигляді піктограми Однак редактор запитів являє собою не тільки статичне засіб перегляду

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

■ Приміщення покажчика миші над сполучною лінією призводить до відображення інформації про спосіб переміщення даних

Плани можна зберігати у файлах з розширенням sqlplan для подальшого дослідження

Puc 503 План виконання запиту відображає логічні операції, які SQL Server використовує для виконання запиту

Використання параметра showpian

На додаток до графічного відображенню плану виконання параметр Showpian розкриває його додаткові деталі Він доступний в трьох формах: all, text і XML

Коли параметр showpian включений, SQL Server повертає план виконання запиту, але не виконує інструкцію, як при використанні параметра show estimated plan Єдиною інструкцією в пакеті повинна бути Set showpian

Подібно параметру show estimated plan, SQL Server поверне план виконання запиту, але не виконає інструкцію У версії XML параметр show actual plan повинен знаходитися у відключеному стані До того ж, якщо встановлено табличне відображення результатів запиту, таблиця дозволить відкрити за посиланням файл XML, використовуючи браузер Робота параметра showplan описана нижче

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

■ Showplan_text дуже схожий на showplan_all, за винятком того, що виконувана інструкція та операції знаходяться в різних результуючих наборах даних: при цьому відображається тільки перший стовпець stmt text

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

Параметр showplan_text, поряд з параметрами set statistics, може бути включений і в графічному інтерфейсі редактора запитів За допомогою команди Query Options контекстного меню можна відкрити діалогове вікно параметрів запиту, після чого знайти параметри showplan, вибравши в меню пункт Execution ^ Advanced

I Динамічне подання управління також дозволяє відобразити той же

SVS план виконання запиту у форматі XML, однак цей метод потребують неко-

I * Торого вивчення необхідних параметрів

Ще одним способом отримання плану виконання запиту є використання команди set statistics profile on При цьому буде виконаний запит і надана та ж детальна інформація, що і при використанні параметра showplan_all, включаючи фактичну кількість рядків і статистику виконання Це є еквівалентом плану виконання show actual у вигляді результуючого набору даних

Інтерпретація плану виконання запиту

Читання плану виконання запиту на перший погляд може здатися складним: графіка – незвична, а обсяг інформації – приголомшує SQL Server використовує близько шістдесяти операторів Деякі з них представляють конкретні фізичні задачі, в той час як більшість являє собою набір прихованих завдань У табл 502 перераховані ключові оператори, що відносяться до запитів відбору та індексації

Загальним помилкою є те, що пошук завжди хороший, в той час як сканування завжди погано Насправді це не завжди так У звязку з тим що СУБД SQL Server оптимізована для послідовного вилучення даних, сканування є відмінним способом вилучення великих обсягів даних, однак погано підходить для вилучення декількох ізольованих рядків Пошук за індексом хороший для витягання з різних місць по кілька рядків, в той же час витяг більшої частини таблиці з використанням того ж методу показує набагато гіршу продуктивність у порівнянні зі скануванням

Таблиця 502 Оператори плану виконання запиту

Логічна операція пошуку по закладках в SQL Server 2005 була видалена і Новинка ^ замінена пошуком в кластеризувати індексі і пошуком в RID У попередніх 2005 версіях SQL Server відображався значок цієї операції, але насправді ви

полнял операції пошуку в кластерізванном індексі і в RID

Джерело: Нільсен, Пол 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>

*

*