Sql server: проблема запитів і процедур

Відео: Відеокурс по SQL Essential. Урок 8. Процедури, що зберігаються. функції для

Інструментарій для роботи
SQL Server: проблема запитів і процедур

Важливо, щоб адміністратор бази даних у своєму розпорядженні необхідним інструментарієм (сценаріями) для виконання роботи. Ми брали невірні рішення через обмеженого набору сценаріїв, який направляв нас по помилковому сліду. Я запропонував адміністратору баз даних скористатися інструментом з мого комплекту, який буде описаний нижче. По суті, це два запити на основі двох різних динамічних адміністративних уявлень: одне орієнтоване на статистику виконання запитів, а інше ізолює метрики виконання тільки для збережених процедур. Правильно використовуючи два сценарії, ви отримаєте вичерпне уявлення запитів і збережених процедур, які викликають найбільше проблем з екземпляром. Цими проблемами можуть бути:
• велике число операцій читання;
• велика кількість операцій запису;
• збільшений час виконання;
• високе навантаження на процесор.

Ці два сценарії налаштовуються для кожного випадку простим зняттям коментарів з відповідної пропозиції ORDER BY. Крім того, в кожному сценарії можна зняти коментарі з пропозиції WHERE, а потім замінити шаблонний параметр для фільтрації по імені бази даних, якщо потрібно звузити область з рівня екземпляра до бази даних. У кожному запиті будуть повернуті всі статистичні дані, які стосуються:
• описової ідентифікації (ім`я, код, плани запитів);
• діям з читання (логічним або фізичним);
• діям по запису;
• історичної інформації щодо кількості повернутих рядків;
• метрик процесора;
• часу виконання, лічильників, тривалості.

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

Код запиту і тестові результати

Нижче наведено код для обох аналітичних запитів - спочатку орієнтований на запити, а слідом призначений виключно для збережених процедур. Розмір коду досить великий, але вам не важко буде скопіювати і вставити його в свій сценарій (природно, повністю під вашу відповідальність). Я навіть помістив ці запити в збережені процедури. Як завжди, я змінюю результати, щоб не розкривати відомостей про моїх клієнтів. Метрики взяті з практичних застосувань, але всі плани, код виконання інструкцій і імена змінені. Для кращого відображення результатів я спочатку експортував їх в Excel.

SQL Server: проблема запитів і процедур
Аналіз вимогливих запитів

Аналіз вимогливих запитів для екземпляра SQL Server наведено вище. Ядро цього запиту взято з динамічного адміністративного подання sys. dm_exec_procedure_stats, в якому зберігаються дані про кожного кешуватися запиті, що виконується в екземплярі.




SQL Server: проблема запитів і процедур
Інформація про процесор

SQL Server: проблема запитів і процедур
Інформація про час виконання

SQL Server: проблема запитів і процедур
Інформація про логічних операціях читання

SQL Server: проблема запитів і процедур
Інформація про фізичних операціях читання

SQL Server: проблема запитів і процедур



Інформація про записи

SQL Server: проблема запитів і процедур
Інформація про повернутих рядках

SQL Server: проблема запитів і процедур
Інформація про повернутих рядках

SQL Server: проблема запитів і процедур
Інформація про коді і плані

Після виконання ми бачимо результати (розділені мною на категорії), представлені на скріншотах вище. Перші два стовпці повторюються тільки для зручності читання вичерпних результатів.

SQL Server: проблема запитів і процедур
Аналіз вимогливих збережених процедур

Аналіз вимогливих збережених процедур для екземпляра SQL Server представлений вище. Нижче розглядається код і результати запиту, спрямованого до динамічного адміністративному поданням sys.dm_exec_procedure_ stats. Деякі стовпці не включені в це динамічне адміністративне уявлення на відміну від спорідненого DMV в основі попереднього запиту, тому результуючі стовпці трохи інші.

SQL Server: проблема запитів і процедур
Ідентифікація процедури і лічильник виконання

SQL Server: проблема запитів і процедур
Інформація про процесор

SQL Server: проблема запитів і процедур
Інформація про час виконання

SQL Server: проблема запитів і процедур
Інформація про логічних операціях читання

SQL Server: проблема запитів і процедур
Інформація про фізичних операціях читання

SQL Server: проблема запитів і процедур
Інформація про операції записи

SQL Server: проблема запитів і процедур
Інформація про виконання і коді або плані процедури

Як і в описаному вище випадку виконання сценарію, результати (розділені мною на категорії) представлені на скріншотах вище. Перші два стовпці повторюються тільки для зручності читання вичерпних результатів.

Як ми бачимо, знову динамічні адміністративні уявлення грають роль вичерпного джерела інформації для діагностики проблем SQL Server (звичайно, починаючи з версії SQL Server 2005). Саме тому такі конструкції є мій улюблений компонент SQL Server, а компанія Microsoft продовжує удосконалювати і розширювати об`єкти динамічного управління в кожному випуску своїх продуктів.


Мрієте виростити з дитини геніального IT`шника або, по крайней мере, програміста? Тоді починати його знайомство з програмним середовищем стоїть не з SQL Server, а з програми Scratch - https://andprog.ru/scratch.html (https://andprog.ru/scratch.html). Це ідеальний інструмент, який дозволить вашому чаду освоїти основи програмування в форматі захоплюючої гри!

ІНШЕ

» » Sql server: проблема запитів і процедур