Поділитися зараз:

1. Вступ до SQL Server Performance Monitor

1.1 Що таке SQL Server Монітор продуктивності?

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

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

1.2 Ключові переваги моніторингу ефективності

Ефективний SQL Server монітор продуктивності надає кілька важливих переваг:

  • Проактивне виявлення проблем: Виявляйте та усувайте потенційні проблеми, перш ніж вони вплинуть на користувачів або бізнес-операції
  • Оптимізація продуктивності: Визначте вузькі місця та неефективність для покращення загальної продуктивності бази даних
  • Планування потужностей: Прогнозування потреб у ресурсах та планування майбутнього зростання на основі історичних даних
  • Відповідність і безпека: Забезпечувати дотримання нормативних вимог та виявляти підозрілу діяльність

1.3 Поширені проблеми з продуктивністю

Без належного монітора продуктивності бази даних SQL організації стикаються з кількома ризиками:

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

Згідно з дослідженням IDC 2023 року, 65% проблем із продуктивністю баз даних пов'язані з поганими методами моніторингу або оптимізації.

2. Розуміння монітора продуктивності Windows (PerfMon)

2.1 Що таке монітор продуктивності Windows?

Монітор продуктивності Windows (PerfMon) – це вбудований інструмент Windows, який контролює системні ресурси та продуктивність програм. Для SQL Server адміністраторам, PerfMon надає безцінну інформацію як про операційну систему, так і SQL Server показники, що робить його важливим для комплексного аналізу ефективності.

Монітор продуктивності Windows (PerfMon)

PerfMon вимірює статистику продуктивності через регулярні проміжки часу та зберігає цю статистику у файлах для подальшого аналізу. Адміністратори баз даних можуть вибрати часовий інтервал, формат файлу та статистику для моніторингу. Інструмент не... SQL Server-специфічний — системні адміністратори використовують його для моніторингу самої Windows, Exchange, файлових серверів та будь-якої програми, яка може мати вузькі місця.

2.2 Запуск монітора продуктивності

Ви можете запустити Монітор продуктивності кількома способами:

  1. Натисніть Старт, введіть PerfMon У полі пошуку натисніть «Performand Monitor» у результатах пошуку:
    Пошук таtart PerfMon з поля пошуку Windows.
  2. Преса Windows + R, введіть PerfMon, і натисніть Enter
    StarPerfMon з вікна запуску Windows.
  3. перейдіть до панель управління -> Система і безпека -> адміністративні інструменти -> Performance Monitor
    StarPerfMon з Панелі керування -> Система та безпека -> Адміністрування -> Монітор продуктивності

3. істотний SQL Server Лічильники продуктивності

3.1 Лічильники продуктивності пам'яті

Лічильники пам'яті критично важливі для моніторингу SQL Server продуктивність, оскільки вони вказують на те, чи має ваша база даних достатньо ресурсів пам'яті.

Доступні мегабайти

Цей лічильник показує обсяг фізичної пам'яті, доступної для негайного розподілу. Він має залишатися досить постійним і в ідеалі не опускатися нижче 4096 МБ. Низькі значення можуть свідчити про те, що SQL ServerНалаштування максимального обсягу пам'яті залишається за замовчуванням або неSQL Server програми споживають пам'ять.

Тривалість життя сторінки

Очікувана тривалість життя сторінки вимірює, як довго (у секундах) сторінка залишається в буферному пулі без звернення. Нормальне значення становить 300 секунд або більше. Нижчі значення вказують на навантаження на пам'ять та надмірне оновлення буфера, що знижує ефективність кешу.

Коефіцієнт потрапляння до кешу буфера

Цей лічильник показує відсоток запитів даних, на які було оброблено відповідь з використанням кешу буфера SQL (пам'яті), а не зчитування з диска. Зазвичай він досягає або перевищує 99%. Нижчі значення свідчать про те, що SQL Server потрібно більше пам'яті або все ще розігрівається після перезавантаженняtart.

Memory Grants Pending

Це показує кількість процесів, які очікують на пам'ять у SQL ServerЗа нормальних умов це значення має постійно дорівнювати 0. Вищі значення вказують на недостатнє виділення пам'яті для SQL Server.

TarОтримайте інформацію про пам'ять сервера та загальну пам'ять сервера

TarОцінка пам'яті сервера вказує на ідеальний обсяг пам'яті SQL Server хоче використовувати. Загальна пам'ять сервера показує, що SQL Server використовується наразі. Співвідношення між цими значеннями має бути приблизно 1. Значні відмінності можуть свідчити про перевантаження пам'яті або недостатню кількість доступної пам'яті.

3.2 Лічильники продуктивності процесора

Лічильники процесора допомагають виявити вузькі місця процесора та зрозуміти, як SQL Server використовує обчислювальні ресурси.

% часу процесора

Це вимірює відсоток часу, який процесор витрачає на виконання потоків, що не перебувають у режимі очікування. На активних серверах значення можуть зростати до 100%, але тривале використання понад 70-75% зазвичай вказує на проблеми з продуктивністю для користувачів. Відсутні або неадекватні індекси часто призводять до високого використання процесора.

% Привілейованого часу

Процесорний час поділяється на режим користувача та режим привілейованого режиму (ядра). Весь доступ до диска та операції вводу-виводу відбуваються в режимі ядра. Якщо цей лічильник перевищує 25%, система, ймовірно, виконує забагато операцій вводу-виводу. Нормальні значення коливаються від 5% до 10%.

Довжина черги процесора

Цей лічильник показує потоки, які очікують ресурсів процесора. Значення постійно перевищують 1 (за винятком випадків, коли SQL Server стиснення резервних копій) вказують на навантаження на процесор. Це часто означає, що на SQL Server машина, що порушує найкращі практики.

Перемикання контексту/сек

Це вимірює частоту перемикання процесора між потоками. Надмірне перемикання контексту може вплинути на продуктивність і свідчити про високе навантаження на систему.

3.3 Лічильники продуктивності вводу/виводу диска

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

% Час роботи диска

Це фіксує відсоток часу, протягом якого диск був зайнятий операціями читання/запису. Значення, що постійно перевищують 85%, вказують на вузьке місце вводу/виводу. Оскільки диск набагато повільніший за пам'ять, зменшення цього показника покращує продуктивність.

Середній час читання на диску (сек) та середній час запису на диску (сек)

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

Довжина черги диска

Це показує невиконані запити на читання/запис на диск. Значення, постійно вищі за 2 (або 2 на диск для RAID-масивів), вказують на те, що диск не може обробляти запити вводу/виводу.

Байт на диску/сек

Цей параметр контролює швидкість передачі даних на диск/з диска. Якщо вона перевищує номінальну ємність диска, дані починають накопичуватися, що відображається збільшенням довжини черги диска.

Передача диска/сек

Це відстежує кількість операцій читання/запису, виконаних на диску. SQL Server Доступ до даних зазвичай випадковий, що повільніше через рух головки дисковода. Переконайтеся, що це значення залишається нижчим за максимальну швидкість вашого дисковода (зазвичай 100/с для стандартних дисків).

3.4 SQL Server Спеціальні лічильники

3.4.1 Лічильники менеджера буфера

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

  • Перегляди сторінок/сек: Сукупна кількість читань фізичних сторінок бази даних
  • Записи сторінок/сек: Сукупна кількість записів сторінок фізичної бази даних
  • Ледачі записи/сек: Кількість буферів, записаних лінивим записувачем для звільнення пам'яті
  • Сторінки контрольної точки/сек: Сторінки, скинуті контрольною точкою або іншими операціями, що вимагають скидання всіх "брудних" сторінок

3.4.2 Лічильники статистики SQL

Ці лічильники надають уявлення про SQL Server обробка запитів:

  • Пакетні запити/сек: Кількість пакетних SQL-запитів, отриманих сервером. Це служить орієнтиром для оцінки активності сервера.
  • Компіляцій SQL/сек: Кількість компіляцій SQL. Повинна становити 10% або менше від загальної кількості пакетних запитів/сек.
  • Перекомпіляції SQL/сек: Кількість повторних компіляцій SQL. Також має становити 10% або менше від загальної кількості пакетних запитів/сек.

3.4.3 Лічильники загальної статистики

  • Підключення користувачів: Кількість користувачів, підключених до системи. Використовується як орієнтир для відстеження зростання кількості підключень з часом.
  • Заблоковані процеси: Поточна кількість заблокованих процесів. В ідеалі має бути 0.

3.4.4 Лічильники менеджера пам'яті

  • Очікуються гранти пам'яті: Загальна кількість процесів, які очікують на отримання пам'яті для робочої області. В ідеалі має бути 0.

4. Налаштування монітора продуктивності для SQL Server(Windows Vista / Server 2008 та пізніші версії)

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

  • Для Windows Vista / Server 2008 та пізніших версій у цьому розділі можна створювати набори збирачів даних.
  • Для Windows XP / Server 2003 та попередніх версій ви можете створювати журнали лічильників у наступний розділ.

4.1 Що таке набори збирачів даних?

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

4.2 Створення набору збирачів даних

Створення власного набору збирачів даних для моніторингу SQL Server лічильники продуктивності:

  1. Відкрити монітор продуктивності
  2. Розширювати Набори збирачів даних
  3. Клацніть правою кнопкою миші Визначений користувачем
  4. Виберіть Нові -> Набір збирача даних
    Створення нового набору збирачів даних у PerfMon
  5. Введіть описову назву (наприклад, «SQL Server «Показники ефективності»)
  6. Виберіть Створити вручну (Додатково)
    Встановіть назву опису для набору збирачів даних
  7. Натисніть Далі
  8. перевірити Створення журналів даних -> Лічильник продуктивності
    Виберіть «Створити журнали даних» -> «Лічильник продуктивності» у майстрі створення нового набору збирачів даних.
  9. Натисніть Далі
  10. Натисніть додавати вибрати лічильники
  11. додавати бажаний SQL Server та системні лічильники.
    Додайте лічильники продуктивності до нового набору збирачів даних.
  12. Установка Інтервал вибірки
    • Для рутинного моніторингу використовуйте 1 хвилину (60 секунд)
    • Для активного усунення несправностей використовуйте 15-30 секунд
    • Уникайте тривалого виконання високочастотних записів, оскільки вони можуть вплинути на продуктивність і генерувати надмірну кількість даних.

    Встановіть інтервал вибірки в новому майстрі набору колекціонерів даних.

  13. Натисніть Далі
  14. Виберіть місце для збереження журналів
    Вкажіть місце для збереження даних про продуктивність у майстрі створення набору збирачів даних.
  15. Натисніть обробка, буде створено новий набір збирачів даних.
  16. За замовчуванням новий набір збирачів даних буде $NOT бути starавтоматично. Вам потрібно знайти його на лівій панелі, під продуктивність -> Набори збирачів даних -> Визначений користувачем -> Ваш Збірник даних, клацніть його правою кнопкою миші та виберіть Старт
    Starновий набір збирачів даних у PerfMon.

4.3 Ключові лічильники для додавання

  • Пам'ять -> Доступні мегабайти
  • Фізичний диск -> Сер. обсяг диска (сек./читання) (усі екземпляри, окрім _Total)
  • Фізичний диск -> Сер. час запису на диску (сек.) (усі екземпляри, окрім _Total)
  • Фізичний диск -> Читання з диска/сек (усі екземпляри, окрім _Total)
  • Фізичний диск -> Кількість записів на диск/сек (усі екземпляри, окрім _Total)
  • Процесор -> % часу процесора (усі випадки, окрім _Total)
  • SQLServer: Загальна статистика -> Підключення користувачів
  • SQLServer: Менеджер пам'яті -> Очікування грантів пам'яті
  • SQLServer: Статистика SQL -> Пакетні запити/сек
  • SQLServer: Статистика SQL -> Компіляції SQL/сек
  • SQLServer: Статистика SQL -> Перекомпіляції SQL/сек
  • Система -> Довжина черги процесора

4.4 Налаштування умов зупинки

Налаштуйте умови зупинки, щоб запобігти необмеженому зростанню даних:

  1. Після створення набору збирачів даних клацніть його правою кнопкою миші та виберіть властивості
  2. Натисніть Умова зупинки таб
  3. включити Загальна тривалість
  4. Встановити тривалість на 1 день (24 години)
  5. Натисніть OK , Щоб зберегти

Встановіть умову зупинки для набору збирачів даних

Це гарантує, що журнал не стане занадто великим і автоматично перезавантажиться.tarтс, якщо заплановано.

4.5 Планування збору даних

Автоматизуйте збір даних для забезпечення послідовного моніторингу:

  1. Клацніть правою кнопкою миші на вашому наборі даних і виберіть властивості
  2. Натисніть Розклад таб
  3. Натисніть додавати створити новий розклад
  4. Налаштувати starдата й час
  5. Встановити шаблон повторення (наприклад, щодня)
  6. Натисніть OK щоб зберегти розклад

Встановіть розклад для набору збирачів даних

Для автоматичнихtarтуп, налаштуйте набір збирача даних на start під час завантаження сервера шляхом створення якtarтригер tup у планувальнику завдань Windows.

5. Налаштування монітора продуктивності для SQL Server(Windows XP / Server 2003 та раніші версії)

У Windows XP / Server 2003 та попередніх версіях можна створювати журнали лічильників, які дозволяють вибрати набір лічильників продуктивності та періодично записувати їх у файл.

5.1 Створення журналів лічильників

Виконайте такі дії, щоб створити новий журнал лічильника:

  1. Відкрити монітор продуктивності
  2. Розширювати Журнали та оповіщення продуктивності на лівій панелі
  3. Клацніть правою кнопкою миші Журнали лічильника
  4. Виберіть Нові налаштування журналу
  5. Назвіть журнал, використовуючи ім'я вашого сервера бази даних (наприклад, «ProductionSQL01»)
  6. Натисніть OK щоб розпочати налаштування

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

5.2 Додавання лічильників продуктивності

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

  1. Натисніть Додати лічильники button
  2. Змініть ім'я комп'ютера, щоб воно вказувало на ваш SQL Server екземпляр
  3. Преса таб завантажити доступні об'єкти продуктивності
  4. Виберіть об'єкт продуктивності зі спадного списку (наприклад, пам'ять)
  5. Виберіть конкретні лічильники з список
  6. Виберіть випадки, якщо застосовуєтьсяcab(наприклад, окремі процесори або диски)
  7. Натисніть додавати включити лічильник
  8. Повторіть для всіх потрібних лічильників
  9. Натисніть Закрити коли закінчено

5.3 Налаштування інтервалів вибірки

Інтервал вибірки визначає, як часто Performance Monitor збирає дані. Налаштуйте відповідні інтервали залежно від ваших потреб моніторингу:

  1. У властивостях журналу лічильника знайдіть Вибір даних кожні
  2. Встановіть інтервал (за замовчуванням 15 секунд)
  3. Для моніторингу базової лінії використовуйте інтервали в 1 хвилину для щоденного збору даних
  4. Для усунення несправностей використовуйте інтервали 15-30 секунд для коротких імпульсів
  5. Натисніть OK застосовувати

Пам’ятайте, що менші інтервали генерують більше даних, які може бути складніше відобразити та проаналізувати. Більші інтервали можуть пропустити важливі піки. Збалансуйте деталізацію даних із вимогами до зберігання та аналізу.

5.4 Налаштування файлів журналів

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

  1. Натисніть Файли журналів вкладка у властивостях журналу лічильника
  2. Змінити тип файлу журналу на Текстовий файл (розділений комами) для легкого імпорту в Excel
  3. Натисніть Конфігурувати
  4. Встановіть шлях до файлу у виділеному місці (наприклад, спільна папка PerformanceLogs)
  5. Натисніть OK підтвердити

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

5.5 Налаштування облікових даних

Налаштуйте відповідні облікові дані, щоб монітор продуктивності мав доступ до віддаленого SQL Server екземпляри:

  1. У властивостях журналу лічильника знайдіть Запуск від імені
  2. Введіть ім'я користувача вашого домену у форматі: ДОМЕН\ім'я користувача
  3. Натисніть Встановити пароль
  4. Введіть та підтвердьте свій пароль
  5. Натисніть OK , Щоб зберегти

Це дозволяє сервісу PerfMon збирати статистику, використовуючи дозволи вашого домену, а не власні облікові дані.

6. Аналіз даних монітора продуктивності

6.1 Перегляд файлів журналів у моніторі продуктивності

Монітор продуктивності може відображати історичні дані зі збережених файлів журналів:

  1. Відкрити монітор продуктивності
  2. На лівій панелі натисніть Інструменти моніторингу -> Performance Monitor.
  3. Клацніть правою кнопкою миші будь-де в області графіка
  4. Виберіть властивості
    Відкрийте властивості в PerfMon, клацнувши правою кнопкою миші будь-де в області графіка.
  5. Натисніть  Source таб
  6. Виберіть Журнали радіо-кнопка
  7. Натисніть  додавати
  8. Перейдіть до файлу журналу (.blg або .csv)
  9. Виберіть файл і натисніть відкритий
    Встановити файл журналу як джерело графіки в PerfMon.
  10. Ввімкніть кнопку Діапазон часу повзунок, щоб вибрати період, який потрібно проаналізувати
  11. Натисніть  OK щоб закрити діалогове вікно «Властивості»
  12. Натисніть зелений значок із плюсом, щоб додати лічильники з файлу журналу
    Натисніть зелений значок із плюсом, щоб додати лічильники з файлу журналу в PerfMon.
  13. Виберіть потрібні лічильники для відображення
    Додайте потрібні лічильники до графіки в PerfMon.
  14. Натисніть  OK

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

6.2 Експорт даних до Excel

Excel надає потужні можливості аналізу даних лічильників продуктивності:

  1. Відкрийте монітор продуктивності із завантаженим файлом журналу
  2. Клацніть правою кнопкою миші будь-де в області графіка
  3. Виберіть Зберегти дані як
  4. Виберіть місце для файлу
  5. Виберіть Текстовий файл (розділений комами) (.csv) зі спадного меню
  6. Натисніть Зберегти
  7. Відкрийте CSV-файл у програмі Excel

Експортуйте дані у файл у PerfMon.

Відформатуйте експортовані дані для кращого аналізу:

  1. Видалити напівпорожній рядок 2 та очистити клітинку A1
  2. Форматувати стовпець A як дату/час
  3. Форматування числових стовпців з нулем десяткових знаків та роздільником тисяч
  4. Знайти та замінити імена серверів у заголовках (наприклад, замінити “\\SERVERNAME” на порожній рядок)
  5. Очистити назви об'єктів у заголовках (наприклад, «Пам'ять», «Фізичний диск», «Процесор»)
  6. Зменште розмір шрифту заголовка до 8 пунктів для кращої видимості

6.3 Інтерпретація значень лічильника

6.3.1 Аналіз лічильника пам'яті

Аналізуючи лічильники пам'яті, зверніть увагу на такі показники:

  • Доступні мегабайти: Повинно постійно залишатися вище 4096 МБ
  • Тривалість життя сторінки: Значення вище 300 секунд вказують на здорову пам'ять. Нижчі значення свідчать про навантаження на пам'ять.
  • Коефіцієнт звернень до кешу буфера: Має досягати або перевищувати 99%. Нижчі значення вказують на надмірне зчитування з диска
  • Очікуються гранти пам'яті: Завжди має бути 0. Будь-яке додатне значення вказує на обсяг пам'яті.tarвідпустка

6.3.2 Аналіз лічильника процесора

Показники продуктивності процесора включають:

  • % часу процесора: Тривале використання понад 75% вказує на проблеми з продуктивністю. Піки до 100% є нормальними, але не повинні тривати довше.
  • Довжина черги процесора: Значення вище 1 вказують на навантаження на процесор. Перевірте диспетчер завдань, щоб визначити, які процеси споживають навантаження на процесор.
  • % Привілейованого часу: Має залишатися в межах 5-10%. Значення вище 25% свідчать про надмірну кількість операцій вводу/виводу.

6.3.3 Аналіз лічильника дисків

Пороги продуктивності диска:

  • Середній час роботи диска (сек.)/читання та запис: Має залишатися нижче 10-20 мс. Вищі значення вказують на повільні дискові підсистеми.
  • Довжина черги диска: Значення, що постійно перевищують 2 (або 2 на диск у RAID), вказують на вузькі місця вводу/виводу.
  • % Час роботи диска: Стійкі значення вище 85% вказують на насичення диска

6.4 Використання формул та статистики

Додайте статистичні формули до Excel для швидкого аналізу:

  1. Вставте 7 пустих рядків у верхній частині електронної таблиці
  2. Додайте мітки у стовпці A: Середнє, Медіана, Мін., Макс., Стандартне відхилення
  3. У клітинку B2 введіть: =AVERAGE(B9:B100) (змініть B100 на останній рядок даних)
  4. У клітинку B3 введіть: =MEDIAN(B9:B100)
  5. У клітинку B4 введіть: =MIN(B9:B100)
  6. У клітинку B5 введіть: =MAX(B9:B100)
  7. У клітинку B6 введіть: =STDEV(B9:B100)
  8. Копіювати формули у всі стовпці лічильника
  9. Виберіть клітинку B9 і натисніть Alt+W+F+Enter, щоб закріпити області

Ця статистика допомагає визначити тенденції, викиди та нормальні робочі діапазони для кожного лічильника.

7. Інструмент аналізу продуктивності журналів (PAL)

7.1 Вступ до PAL

Аналіз продуктивності для журналів (PAL) – це безкоштовний інструмент, розроблений Клінтом Хаффманом, який аналізує журнали монітора продуктивності та генерує HTML-звіти з аналізом порогових значень. PAL порівнює ваші дані про продуктивність з відомими пороговими значеннями та надає детальні рекомендації щодо SQL Server оптимізація продуктивності.

Завантажте PAL з репозиторію GitHub: https://github.com/clinthuffman/PAL Посилання

7.2 Налаштування PAL

Встановіть PAL, виконавши такі дії:

  1. Завантажте файл налаштування PAL з GitHub
  2. Запустіть інсталятор
  3. Натисніть Далі на екрані привітання
  4. Перегляньте та прийміть каталог встановлення
  5. Натисніть Далі для продовження
  6. Натисніть Встановлювати щоб почати встановлення
  7. Зачекайте, поки установка завершиться
  8. Натисніть обробка

7.3 Обробка файлів журналів за допомогою PAL

Проаналізуйте журнали монітора продуктивності за допомогою PAL:

  1. Запустіть PAL з Starменю t або каталог встановлення
  2. Натисніть Журнал лічильника таб
  3. Натисніть Вклеїти щоб вибрати файл .blg
  4. Перейдіть до файлу журналу монітора продуктивності
  5. Натисніть відкритий
  6. Натисніть Файл порогових значень таб
  7. Виберіть файл порогового значення зі спадного списку (наприклад, «SQL Server 2016 ”)
  8. Натисніть запитання таб
  9. Дайте відповідь на запитання щодо конфігурації вашої системи
  10. Вкажіть, чи ваш SQL Server це OLTP або сховище даних
  11. Введіть загальну доступну оперативну пам'ять
  12. Натисніть Параметри виводу таб
  13. Виберіть вихідний каталог для HTML-звіту
  14. перевірити HTML формат виводу
  15. Натисніть Виконати таб
  16. Перегляньте свій вибір
  17. перевірити Starвиконання зараз
  18. Натисніть обробка

7.4 Аналіз звітів PAL

Після завершення аналізу PAL генерує звіт у форматі HTML, що містить:

  • Короткий виклад питань ефективності
  • Детальний контраналіз з діаграмами
  • Порушення порогових значень виділено кольором
  • Конкретні рекомендації щодо кожного питання
  • Історичні тенденції та закономірності

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

8. Альтернатива SQL Server Інструменти моніторингу

8.1 Вбудований SQL Server Інструменти

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor відображає інформацію в режимі реального часу про SQL Server процеси та продуктивність:

  1. відкритий SQL Server Management Studio (SSMS) та підключення до екземпляра вашого сервера
  2. Клацніть правою кнопкою миші на імені сервера в Провіднику об'єктів
  3. Виберіть Activity Monitor
    StarМонітор активності в SQL Server Студія управління.

Монітор активності показує процеси, очікування ресурсів, операції вводу/виводу файлів даних та останні ресурсомісткі запити. Він надає швидкий огляд поточної активності бази даних, але не зберігає історичні дані.

Монітор активності в SQL Server

8.1.2 SQL Server Інформаційна панель продуктивності

SQL Server Management Studio містить вбудовані звіти про ефективність:

  1. In SQL Server Management Studio (SSMS), клацніть правою кнопкою миші SQL Server екземпляр у Провіднику об'єктів
  2. Виберіть Звіти -> Стандартні звіти
  3. Виберіть з доступних звітів, таких як Інформаційна панель продуктивності
    Відкрити панель керування продуктивністю в SQL Server Студія управління.

Панель керування продуктивністю надає візуальну інформацію про SQL Server продуктивність екземпляра, включаючи використання системного процесора, поточні запити на очікування та показники продуктивності. Доступ до них можна отримати через меню Стандартні звіти.

Панель керування продуктивністю в SQL Server Студія управління

8.1.3 SQL Server Профіль

SQL Server Профіль фіксує та аналізує SQL Server події, такі як виконання запитів, операції транзакцій та дії входу.

To start SQL Server профайлер:

  1. In SQL Server Студія управління, натисніть Інструменти -> SQL Server Профіль
    Start SQL Server Профайлер у SQL Server Студія управління.

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

SQL Server Профіль

8.1.4 Розширені події

Розширені події це легка система моніторингу продуктивності, вбудована в SQL Server. Він замінює SQL Server Профайлер з кращою продуктивністю та меншими накладними витратами.

Ключові особливості включають:

  • Детальний моніторинг конкретних подій
  • Мінімальний вплив на продуктивність
  • Налаштовувані сесії подій
  • Інтеграція з SSMS та іншими інструментами
  • Підтримка складної фільтрації та агрегації

Створення розширених сеансів подій за допомогою SSMS:

  1. In Провідник об’єктів, розгорніть свій сервер і перейдіть до Керування -> Розширені події -> Сеанси
  2. Клацніть правою кнопкою миші на Сеанси І вибирай Майстер нових сеансів
    Starнова сесія розширених подій у SQL Server Студія управління.
  3. Дотримуйтесь інструкцій, щобtarдо нової сесії.

8.1.5 Динамічні подання керування (DMV)

DMV надають детальну інформацію про стан сервера для моніторингу справності, діагностики проблем та налаштування продуктивності. Ключові DMV включають:

  • sys.dm_exec_query_stats: Статистика ефективності запитів
  • sys.dm_os_wait_stats: Типи очікування, що впливають на продуктивність сервера
  • sys.dm_os_performance_counters: SQL Server дані лічильника продуктивності
  • sys.dm_exec_requests: Наразі виконуються запити
  • sys.dm_exec_sessions: Активні сеанси користувачів

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

Основне використання

-- See all active connections
SELECT * FROM sys.dm_exec_connections;

-- View current sessions
SELECT * FROM sys.dm_exec_sessions;

-- Check database file stats
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);

8.2 Рішення для моніторингу від сторонніх розробників

Redgate SQL Monitor

Redgate SQL Monitor спеціалізується на моніторингу SQL Server та середовища баз даних Azure SQL. Він забезпечує моніторинг усієї власності, налаштовувані сповіщення та панелі інструментів, детальні можливості звітності та інтеграцію з іншими інструментами Redgate.

Редгейт SQL Server монітор

SolarWinds SQL Server Інструмент моніторингу

Сонячні вітри SQL Server Інструмент моніторингу, також відомий як SQL Sentry, призначений для діагностики, вирішення та запобігання серйозним проблемам продуктивності з SQL Server.

SolarWinds SQL Server Інструмент моніторингу

IDERA SQL Server Інструмент моніторингу продуктивності

Діагностика IDERA SQLostic Manager є потужним SQL Server інструмент моніторингу продуктивності, розроблений для допомоги в проактивному моніторингу продуктивності, діагностostі налаштування.

IDERA SQL Server Інструмент моніторингу продуктивності

Моніторинг SQL менеджера програм

Менеджер програм пропонує Microsoft SQL Server Інструмент моніторингу, який надає корисні ІТ-рішення. Він призначений для нагляду за продуктивністю баз даних SQL, одночасно виявляючи помилки та вирішуючи проблеми, які можуть призвести до зупинок у роботі організації.

Моніторинг SQL менеджера програм

8.3 Інструменти моніторингу з відкритим кодом

Dash адміністратора баз даних

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

SQLWATCH

SQLWATCH пропонує децентралізовану роботу майже в режимі реального часу SQL Server моніторинг з 5-секундною деталізацією для фіксації піків робочого навантаження. Він підтримує Grafana для панелей моніторингу в режимі реального часу та Power BI для поглибленого аналізу. Інструмент пропонує широкі можливості налаштування, нульові вимоги до обслуговування та необмежену масштабованість.

Спостерігач

Розроблений Stack Exchange, Opserver контролює кілька систем, включаючи SQL Server, Redis та Elasticsearch. Він надає перегляд «всіх серверів» для статистики процесора, пам’яті, мережі та обладнання у вашій інфраструктурі.

sp_Хто є активним

sp_WhoIsActive — це комплексна збережена процедура для моніторингу активності, створена Адамом Маханіком. Вона працює з усіма SQL Server версії з 2005 року до поточних випусків і широко використовується SQL Server Адміністратори баз даних для моніторингу активності в режимі реального часу.

Щоб використовувати sp_WhoIsActive, завантажте його з http://whoisactive.com/, встановіть його у свою базу даних та виконайте:

EXEC sp_WhoIsActive

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

9. Найкращі практики для SQL Server Performance Monitor

9.1 Встановлення базових показників ефективності

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

Створіть базові лінії шляхом:

  1. Збір даних про продуктивність під час звичайної роботи протягом щонайменше одного тижня
  2. Збір показників як у години пік, так і в години поза піком
  3. Документування типових значень для лічильників ключів
  4. Запис сезонних коливань, якщо це застосовуєтьсяcable
  5. Зберігання базових даних для порівняння з майбутніми показниками

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

9.2 Встановлення відповідних порогів сповіщень

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

  • Очікування грантів пам'яті > 0 вказує на навантаження на пам'ять
  • Довжина черги процесора > 2 на ядро ​​свідчить про вузьке місце процесора
  • Час читання або запису на диску > 20 мс вказує на повільний ввід/вивід
  • Заблоковані процеси > 5 сигналів про конфліктні проблеми
  • Тривалість життя сторінки < 300 секунд вказує на навантаження на пам'ять

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

9.3 Регулярний огляд та аналіз даних

Плануйте регулярні огляди ефективності, щоб виявляти тенденції та нові проблеми:

  • Щоденно: Переглядайте загальні показники та останні сповіщення
  • Щотижня: Проводьте поглиблений аналіз тенденцій ефективності
  • Щомісяця: Створюйте комплексні звіти та порівнюйте їх з базовими показниками
  • Щоквартально: Перегляд планування потужностей та довгострокових тенденцій

Документуйте результати та відстежуйте покращення продуктивності з часом.

9.4 Балансування накладних витрат на моніторинг

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

  • Використовуйте інтервали 30-60 секунд для безперервного моніторингу
  • Використовуйте 15-секундні інтервали лише для активного усунення несправностей
  • Обмежте тривалість збору даних, щоб уникнути надмірного обсягу даних
  • Зберігайте журнали на окремих дисках, окремих від файлів бази даних
  • Архівуйте старі дані про продуктивність, щоб підтримувати керовані розміри файлів

Монітор продуктивності додає мінімальні накладні витрати за умови правильного налаштування, зазвичай менше 2% системних ресурсів.

9.5 Довгострокове зберігання даних

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

  • Зберігайте дані про ефективність щонайменше за 1-2 роки
  • Архівуйте дані в окреме сховище через 3-6 місяців
  • Стисніть старі файли журналів для економії місця
  • Документуйте будь-які суттєві події або зміни, що впливають на продуктивність

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

9.6 Інтеграція з практиками DevOps

Включити моніторинг продуктивності бази даних у конвеєри CI/CD:

  • Включити показники продуктивності бази даних під час перевірки розгортання
  • Автоматизуйте тестування продуктивності для нових релізів
  • Перевірте, чи зміни коду не впливають негативно на продуктивність
  • Створіть контрольні показники продуктивності для кожного випуску
  • Інтегруйте сповіщення моніторингу із системами управління інцидентами

10. Вирішення поширених проблем із продуктивністю

10.1 Виявлення вузьких місць процесора

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

  1. Перевірте лічильник довжини черги процесора. Значення вище 2 на ядро ​​вказують на навантаження на процесор.
  2. Перевірте % часу процесора. Тривалі значення понад 75% свідчать про вузьке місце процесора.
  3. Віддалений робочий стіл до SQL Server
  4. Відкрити диспетчер завдань (Ctrl+Shift+Esc)
  5. Натисніть процеси таб
  6. перевірити Показати процеси від усіх користувачів
  7. Натисніть центральний процесор заголовок стовпця для сортування за використанням процесора
  8. Визначення процесів, які споживають ресурси процесора

Якщо не-SQL Server програми споживають значне навантаження на процесор, видаліть їх із сервера бази даних. Якщо sqlservr.exe використовує багато ресурсів процесора, перевірте це за допомогою таких методів:

  • Перевірте кількість компіляцій SQL/сек та кількість повторних компіляцій SQL/сек. Значення вище 10% пакетних запитів/сек вказують на надмірну компіляцію.
  • Запит sys.dm_exec_query_stats для визначення запитів, що ресурсомісткі для процесора
  • Перегляньте плани виконання на наявність відсутніх індексів або неефективних операцій
  • Розгляньте можливість додавання індексів для зменшення сканування таблиць

10.2 Діагностика проблем з пам'яттю

Проблеми з пам'яттю суттєво впливають SQL Server продуктивність. Діагностуйте проблеми з пам'яттю за допомогою цих показників:

Доступні краплі пам'яті

Якщо обсяг доступних мегабайт постійно падає нижче 100 МБ, операційній системі не вистачає пам'яті.tarація. Windows може перегортати сторінки SQL Server пам'яті на диск, що призводить до зниження продуктивності.

Низька тривалість життя сторінки

Очікувана тривалість життя сторінки менше 300 секунд вказує на високий рівень оборотності буферного кешу. Це говорить про недостатнє виділення пам'яті або надмірне навантаження на пам'ять з боку запитів.

Низький коефіцієнт потрапляння до кешу буфера

Коефіцієнт потрапляння до буферного кешу нижче 99% означає SQL Server часто зчитує дані з диска, а не з пам'яті. Це трапляється, коли буферний пул занадто малий або SQL Server все ще розігрівається після резtart.

Memory Grants Pending

Будь-яке значення вище 0 для параметра «Очікування грантів пам’яті» вказує на те, що запити очікують на отримання грантів пам’яті. Це свідчить про критичну нестачу пам’яті, яка потребує негайного втручання.

Щоб вирішити проблеми з пам'яттю:

  1. Конфігурувати SQL Server максимальне налаштування пам'яті, щоб залишити достатньо оперативної пам'яті для операційної системи (зазвичай 4-8 ГБ залежно від розміру сервера)
  2. Увімкнути дозвіл «Блокування сторінок у пам’яті» для SQL Server сервісний рахунок
  3. Додайте більше фізичної оперативної пам'яті до сервера, якщо навантаження на пам'ять не зникає
  4. Виявлення та оптимізація запитів, що потребують багато пам'яті

10.3 Вирішення проблем вводу/виводу диска

Дисковий ввід/вивід часто стає основним вузьким місцем продуктивності в системах баз даних. Діагностуйте проблеми з диском за допомогою таких методів:

Висока довжина черги диска

Якщо довжина черги диска постійно перевищує 2 (або 2 на диск для RAID), це означає, що дискова підсистема не може обробляти запити вводу/виводу. Це створює журнал очікуваних операцій.

Надмірна затримка диска

Значення середнього часу роботи диска (сек./читання) та середнього часу роботи диска (сек./запис) вище 10-20 мс вказують на повільну реакцію диска. Накопичувачі журналів транзакцій потребують особливо швидкої продуктивності, в ідеалі менше 5 мс для запису.

Високий відсоток часу роботи диска

Тривалий відсоток часу роботи диска вище 85% вказує на насичення диска. Диск витрачає мost свого часу на обробку запитів вводу/виводу з невеликою кількістю вільної ємності.

Перш ніж вирішувати проблеми з диском, переконайтеся, що вони не є симптомами проблем із пам'яттю. Недостатньо пам'яті. SQL Server зчитувати більше даних з диска, штучно завищуючи показники диска.

Щоб вирішити проблеми вводу/виводу справжнього диска:

  • Оновіть диски на швидші (SSD замість HDD)
  • Впроваджуйте конфігурації RAID для кращої продуктивності
  • Розміщуйте файли бази даних, журнали транзакцій та тимчасову базу даних на різних фізичних дисках.
  • Додайте більше пам'яті, щоб зменшити кількість читань з диска
  • Оптимізуйте індекси для зменшення непотрібного вводу-виводу
  • Перегляд та оптимізація погано продуктивних запитів

10.4 Вирішення проблем блокування та глухих ситуацій

Блокування відбувається, коли один сеанс має блокування, що перешкоджає продовженню інших сеансів. Слідкуйте за цими лічильниками, щоб виявити проблеми з блокуванням:

  • Заблоковані процеси: В ідеалі має бути 0
  • Очікування блокування/сек: Кількість запитів на блокування, що потребують очікування
  • Середній час очікування: Середня тривалість очікування блокування

Щоб дослідити блокування:

  1. Відкрийте монітор активності в SSMS
  2. Розгорнути процеси розділ
  3. Шукайте процеси з ненульовим значенням Заблоковано величини
  4. Визначте ідентифікатор блокувального сеансу
  5. Перегляньте запити, що спричиняють блокування

Використовуйте sp_WhoIsActive для детальнішого аналізу блокування. Надмірна кількість записів wait_info часто вказує на конфлікти з tempdb або проблеми з блокуванням.

Щоб зменшити блокування:

  • Мінімізуйте тривалість транзакцій
  • Використовуйте відповідні рівні ізоляції
  • Додайте індекси для скорочення тривалості блокування
  • Розгляньте ізоляцію READ_COMMITTED_SNAPSHOT
  • Перегляд та оптимізація довготривалих запитів

10.5 Проблеми з продуктивністю запитів

Визначення ресурсомістких запитів є важливим для моніторингу продуктивності SQL. Використовуйте ці методи для пошуку проблемних запитів:

Використання монітора активності

  1. У SSMS клацніть правою кнопкою миші ім'я сервера
  2. Виберіть Activity Monitor
  3. Розширювати Нещодавні дорогі запити
  4. Перегляд запитів із високим навантаженням на процесор, тривалістю або логічним зчитуванням

Використання DMV

Запит sys.dm_exec_query_stats для визначення ресурсомістких запитів:

SELECT TOP 50
    total_worker_time/execution_count AS avg_cpu_time,
    total_logical_reads/execution_count AS avg_logical_reads,
    execution_count,
    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
        ((CASE qs.statement_end_offset
            WHEN -1 THEN DATALENGTH(qt.text)
            ELSE qs.statement_end_offset
        END - qs.statement_start_offset)/2) + 1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY total_worker_time DESC

Аналіз планів виконання

  1. У SSMS відкрийте нове вікно запиту
  2. Натисніть Відображення орієнтовного плану виконання (Ctrl+L) або Включити фактичний план виконання (Ctrl+M)
  3. Виконайте свій запит
  4. Перегляньте план виконання дороговартісних операцій
  5. Шукайте сканування таблиць, сканування індексів або високий клас коду.ost операції

Оптимізуйте запити за допомогою:

  • Додавання відповідних індексів
  • Переписування запитів для уникнення дороговартісних операцій
  • Оновлення статистики
  • Використання певних назв стовпців замість SELECT *
  • Уникнення зайвих речень DISTINCT або ORDER BY

10.6 Виявлення та виправлення пошкодженої бази даних

Пошкодження бази даних може призвести до зниження продуктивності, втрати даних та системних збоїв. Швидке виявлення та усунення пошкоджень має вирішальне значення для підтримки справності бази даних.

Індикатори пошкодження бази даних

Зверніть увагу на ці ознаки потенційної корупції:

  • Повідомлення про помилки в SQL Server журнал помилок (помилка 823, 824 або 825)
  • Неочікувані помилки програми під час доступу до певних таблиць
  • Повільна продуктивність запитів для раніше швидких запитів
  • SQL Server збої або неочікувані результатиtarts
  • Підозрілі сторінки, що з'являються в таблиці msdb.dbo.suspect_pages

Використання DBCC CHECKDB для виявлення

DBCC CHECKDB є основним інструментом для виявлення пошкоджень бази даних. Регулярно запускайте його, щоб виявляти проблеми на ранній стадії.

Моніторинг підозрілих сторінок

SQL Server автоматично записує підозрілі сторінки в базу даних msdb:

SELECT 
    database_id,
    file_id,
    page_id,
    event_type,
    error_count,
    last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)

Будь-які повернуті рядки вказують на проблеми з пошкодженням, які потребують негайного втручання.

Стратегії запобігання корупції

  • Увімкнути перевірку сторінки за допомогою параметра CHECKSUM
  • Регулярно створюйте резервні копії бази даних
  • Використовуйте надійне обладнання з корекцією помилок
  • Моніторинг стану диска за допомогою інструментів виробника
  • Планування регулярних запусків DBCC CHECKDB
  • тримати SQL Server оновлено останніми патчами

Варіанти відновлення та ремонту

Якщо виявлено пошкодження, можна спробувати вбудований інструмент DBCC CHECKDB щоб виправити їх. Якщо не вдається, скористайтеся сторонніми інструментами, такими як DataNumen SQL Recovery який може боротися з серйозними корупційними проявами.

11. Розширені методи моніторингу

11.1 Моніторинг сховища запитів

Сховище запитів, представлене в SQL Server 2016, автоматично збирає дані про продуктивність запитів. Він надає цінну інформацію про поведінку запитів, плани виконання та тенденції продуктивності.

Увімкнення сховища запитів

  1. У провіднику об'єктів SSMS клацніть правою кнопкою миші базу даних
  2. Виберіть властивості
  3. Натисніть Магазин запитів сторінка
  4. In Режим роботи (за запитом)виберіть Читати писати
  5. Налаштуйте додаткові параметри за потреби
  6. Натисніть OK

Моніторинг продуктивності запитів

Доступ до звітів сховища запитів через Провідник об'єктів:

  1. Розгорніть базу даних у Провіднику об'єктів
  2. Розширювати Магазин запитів
  3. Виберіть із доступних звітів:
    • Регресійні запити
    • Загальне споживання ресурсів
    • Найчастіші запити, що споживають ресурси
    • Запити з примусовими планами
    • Відстежувані запити

Виявлення регресії плану

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

Управління примусовим планом

Коли Query Store визначає кращий план виконання, примусово SQL Server щоб використовувати його:

  1. Відкрийте запит у сховищі запитів
  2. Клацніть правою кнопкою миші на потрібному плані
  3. Виберіть План сил

Це одразу покращує продуктивність без необхідності змінювати код.

11.2 Моніторинг обслуговування індексу

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

Перевірка фрагментації

Використайте цей запит для перевірки фрагментації індексу:

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_fragmentation_in_percent,
    ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
    AND ps.page_count > 1000
ORDER BY ps.avg_fragmentation_in_percent DESC

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

Аналіз щільності сторінок

Щільність сторінок показує, наскільки заповнені сторінки індексу. Низька щільність призводить до марнування місця та знижує продуктивність:

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_page_space_used_in_percent < 75

Рішення про реорганізацію проти перебудови

Виберіть операції з обслуговування індексу на основі рівнів фрагментації:

  • Фрагментація 10-30%: Використовуйте ALTER INDEX REORGANIZE
  • Фрагментація > 30%: Використовуйте ALTER INDEX REBUILD
  • Фрагментація < 10%: жодних дій не потрібно

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

11.3 Оновлення статистики бази даних

Допомога зі статистикою бази даних SQL ServerОптимізатор запитів створює ефективні плани виконання. Застаріла статистика призводить до низької продуктивності запитів.

Автоматичне відновлення статистики

Увімкнути автоматичне оновлення статистики:

ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON
ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON

Моніторинг статистики охорони здоров'я

Перевірте, коли востаннє оновлювалася статистика:

SELECT 
    OBJECT_NAME(s.object_id) AS TableName,
    s.name AS StatisticsName,
    STATS_DATE(s.object_id, s.stats_id) AS LastUpdated,
    sp.rows,
    sp.modification_counter
FROM sys.stats s
CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) sp
WHERE STATS_DATE(s.object_id, s.stats_id) < DATEADD(DAY, -7, GETDATE())
ORDER BY LastUpdated

Оновлення статистики вручну за потреби:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Збір даних про продуктивність на замовлення

Створюйте власні рішення для моніторингу продуктивності, надсилаючи запити безпосередньо до sys.dm_os_performance_counters та зберігаючи результати в таблицях.

Створення власних скриптів колекцій

Створіть збережену процедуру для збору даних лічильника продуктивності:

CREATE PROCEDURE dbo.CollectPerformanceCounters
AS
BEGIN
    INSERT INTO dbo.PerformanceHistory (
        SampleTime,
        CounterName,
        CounterValue
    )
    SELECT 
        GETDATE(),
        counter_name,
        cntr_value
    FROM sys.dm_os_performance_counters
    WHERE counter_name IN (
        'Page life expectancy',
        'Batch Requests/sec',
        'Buffer cache hit ratio'
    )
END

Використання sys.dm_os_performance_counters

Безпосередньо запитувати лічильники продуктивності:

SELECT 
    object_name,
    counter_name,
    instance_name,
    cntr_value,
    cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%'
ORDER BY counter_name

Зберігання історичних даних

Створіть таблицю для зберігання показників ефективності з плином часу:

CREATE TABLE dbo.PerformanceHistory (
    ID INT IDENTITY PRIMARY KEY,
    SampleTime DATETIME2 NOT NULL,
    PageLifeExpectancy BIGINT,
    BatchRequestsPerSec DECIMAL(18,4),
    BufferCacheHitRatio DECIMAL(5,2)
)

CREATE CLUSTERED COLUMNSTORE INDEX CCI_PerformanceHistory 
ON dbo.PerformanceHistory

Методи зберігання зосереджених даних

Зберігайте дані у зведеному форматі з одним рядком на вибірку та одним стовпцем на лічильник. Це зменшує обсяг пам'яті та покращує продуктивність запитів порівняно зі зберіганням одного рядка на лічильник на вибірку.

11.5 Моніторинг кількох серверів

Для середовищ з кількома SQL Server випадків, впроваджуйте централізований моніторинг.

Централізований підхід до моніторингу

  • Створіть спеціальну базу даних моніторингу на окремому сервері
  • Збирати дані з усіх серверів у центральне сховище
  • Скористайтеся кнопкою SQL Server Завдання агента для запуску скриптів збору даних
  • Реалізація збору даних лічильників продуктивності, доступних через мережу

Віддалений моніторинг сервера

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

Міжсерверна звітність

Створюйте звіти, які порівнюють продуктивність кількох серверів, щоб виявити викиди та дисбаланс потужності.

12 Моніторинг SQL Server у хмарних середовищах

12.1 Моніторинг бази даних Azure SQL

База даних Azure SQL надає вбудовані можливості моніторингу, які відрізняються від локальних. SQL Server.

Інтеграція Azure Monitor

Azure Monitor автоматично збирає показники з бази даних Azure SQL, зокрема:

  • Використання DTU або vCore
  • Зберігання використання
  • Статистика підключень
  • Взаємоблокування та тайм-аути

Отримайте доступ до цих показників через портал Azure або API монітора Azure.

Вбудовані функції моніторингу

База даних Azure SQL включає:

  • Рекомендації щодо автоматичного налаштування
  • Аналітика продуктивності запитів
  • Інтелектуальні аналітичні дані для виявлення аномалій
  • Вбудовані сповіщення та діагностикаostics

Аналітика продуктивності запитів

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

12.2 Інструменти моніторингу, що працюють у хмарі

Хмарні платформи пропонують нативні рішення для моніторингу, оптимізовані для їхніх середовищ:

  • Azure Monitor та Application Insights для бази даних Azure SQL
  • AWS CloudWatch для RDS SQL Server
  • Моніторинг хмарних технологій Google для хмарних технологій SQL Server

Ці інструменти безперешкодно інтегруються з хмарною інфраструктурою та забезпечують єдиний моніторинг усіх хмарних ресурсів.

Гібридний моніторинг середовища

Для гібридних розгортань, що охоплюють локальні та хмарні середовища, використовуйте інструменти, що підтримують обидва середовища, такі як Redgate SQL Monitor, SolarWinds DPA, або власні рішення, що використовують централізований збір даних.

12.3 Різниця в продуктивності в хмарі

хмара SQL Server середовища мають унікальні характеристики:

Моделі розподілу ресурсів

Постачальники хмарних послуг використовують різні методи розподілу ресурсів (DTU, vCores, безсерверні технології), які впливають на те, як ви інтерпретуєте показники продуктивності. Зрозумійте обмеження та характеристики вашого рівня обслуговування.

Міркування щодо масштабування

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

13. Автоматизація моніторингу продуктивності

13.1 SQL Server Агент Джобс

Автоматизуйте збір даних за допомогою SQL Server Завдання агента для послідовного моніторингу без ручного втручання.

Збір даних за розкладом

  1. У SSMS розгорніть SQL Server Агент
  2. Клацніть правою кнопкою миші Вакансії і виберіть Нова робота
  3. Назвіть завдання (наприклад, «Збір показників ефективності»)
  4. Натисніть заходи і додати новий крок
  5. Встановити тип на Скрипт Transact-SQL
  6. Введіть свій скрипт збору даних
  7. Натисніть Розклади та додайте розклад
  8. Налаштуйте частоту (наприклад, кожні 5 хвилин)
  9. Натисніть OK створити роботу

Автоматизована звітність

Створюйте завдання, які генерують звіти про ефективність та надсилають їх електронною поштою:

  1. Створення збереженої процедури, яка генерує звіти
  2. Використання Database Mail для надсилання звітів електронною поштою
  3. Заплануйте виконання завдання щодня або щотижня

13.2 Автоматизація PowerShell

PowerShell надає потужні можливості автоматизації для SQL Server монітор продуктивності.

Скрипти збору даних лічильника продуктивності

$counters = @(
    '\Processor(_Total)\% Processor Time',
    '\Memory\Available MBytes',
    '\PhysicalDisk(_Total)\Avg. Disk sec/Read'
)

$data = Get-Counter -Counter $counters -ComputerName 'SQLServer01'
$data.CounterSamples | Export-Csv 'C:\PerfLogs\counters.csv' -Append

Запити WMI

Використовуйте WMI для збору даних про продуктивність з віддалених серверів:

$cpu = Get-WmiObject Win32_Processor -ComputerName 'SQLServer01'
$memory = Get-WmiObject Win32_OperatingSystem -ComputerName 'SQLServer01'

Write-Host "CPU Usage: $($cpu.LoadPercentage)%"
Write-Host "Available Memory: $([math]::Round($memory.FreePhysicalMemory/1MB,2)) GB"

Автоматизоване сповіщення

Створіть скрипти PowerShell, які перевіряють метрики та надсилають сповіщення, коли перевищено порогові значення:

$cpuThreshold = 80
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue

if ($cpu -gt $cpuThreshold) {
    Send-MailMessage -To 'dba@company.com' -Subject 'High CPU Alert' `
        -Body "CPU usage is $cpu%" -SmtpServer 'smtp.company.com'
}

13.3 Створення панелей моніторингу

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

Power BI Integration

  1. Підключіть Power BI до таблиць даних про продуктивність
  2. Створення візуалізацій для ключових показників
  3. Додайте зрізи для часового діапазону та вибору сервера
  4. Публікація інформаційних панелей у службі Power BI
  5. Налаштування розкладів автоматичного оновлення

Створення панелі інструментів у режимі реального часу

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

Візуалізація історичних трендів

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

  • Утилізація процесора
  • Використання пам'яті
  • Диск I / O
  • Продуктивність запиту
  • Кількість підключень

14. Тематичні дослідження та практичні приклади

14.1 Тематичне дослідження: Вирішення проблеми з пам'яттю

Ідентифікація симптомів

Виробництво SQL Server спостерігався повільний час відповіді на запити в години пік. Користувачі скаржилися на тайм-аути програм та зниження продуктивності.

Контраналіз

Дані монітора продуктивності, що були викриті:

  • Тривалість життя сторінки зменшилася до 50 секунд (норма: >300)
  • Коефіцієнт потрапляння до буферного кешу знизився до 85% (норма: >99%)
  • Очікувані гранти пам'яті часто відображали значення 5-10
  • Кількість читань фізичного диска/с значно зросла

Етапи вирішення

  1. Перевірено SQL Server максимальне налаштування пам'яті – виявлено, що воно встановлено на значення за замовчуванням (безлімітне)
  2. Порівняння загальної пам'яті сервера та Tarотримати пам'ять сервера – показав значний розрив
  3. Налаштовано максимальний обсяг пам'яті сервера, щоб залишити 8 ГБ для операційної системи
  4. Увімкнено дозвіл «Блокування сторінок у пам’яті» для SQL Server сервісний рахунок
  5. Додано 32 ГБ додаткової оперативної пам'яті на сервер
  6. Контрольована продуктивність протягом одного тижня – тривалість життя сторінки стабілізувалася вище 500 секунд

Результат: Час відповіді на запити покращився на 60%, скарги користувачів припинилися, а продуктивність програм повернулася до нормального стану.

14.2 Тематичне дослідження: Оптимізація продуктивності процесора

Ідентифікація симптомів

A SQL Server постійно показував завантаження процесора вище 90% протягом робочих годин, що спричиняло уповільнення роботи програм та розчарування користувачів.

Контраналіз

Моніторинг ефективності показав:

  • % часу процесора в середньому становив 92% з частими піками до 100%
  • Довжина черги процесора постійно перевищувала 4 (сервер мав 8 ядер)
  • Кількість компіляцій SQL/сек становила 25% від кількості пакетних запитів/сек (має бути <10%)
  • Кількість повторних компіляцій SQL/сек становила 15% від кількості пакетних запитів/сек

Етапи вирішення

  1. Використовувалися DMV для визначення запитів, що найбільше споживають ресурсів процесора
  2. Проаналізовано плани виконання для виявлених запитів
  3. Виявлено кілька сканувань таблиць у великих таблицях через відсутність індексів
  4. Створив відповідні індекси на основі рекомендацій плану виконання
  5. Виявлено динамічний SQL, що спричиняє надмірну кількість компіляцій
  6. Змінено код програми для використання параметризованих запитів
  7. Реалізовано план дій для проблемних збережених процедур
  8. Оновлена ​​статистика щодо таблиць, що часто використовуються

Результат: Завантаження процесора в середньому знизилося до 45% протягом робочих годин. Час виконання запитів покращився на 70%. Швидкість реагування програм значно покращилася.

14.3 Тематичне дослідження: Вирішення проблеми вузького місця вводу/виводу дисків

Ідентифікація симптомів

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

Контраналіз

Дані про продуктивність показали:

  • Середній час запису на диску перевищив 45 мс на диску журналу транзакцій
  • Середня довжина черги диска на диску з файлами даних становила 12
  • % часу використання диска залишався вище 95% протягом кількох годин під час пакетних завдань
  • Кількість записів сторінок/сек була надзвичайно високою

Етапи вирішення

  1. Перевірені налаштування пам'яті були правильними – проблем з пам'яттю не виявлено
  2. Проаналізовано конфігурацію диска – виявлено всі файли на одному наборі шпинделів
  3. Окремі журнали транзакцій на виділених швидких SSD-накопичувачах
  4. Переміщено тимчасову базу даних на окремі SSD-диски
  5. Реалізовано кілька файлів даних tempdb (по одному на ядро)
  6. Оновлено накопичувачі файлів даних до конфігурації SSD RAID 10
  7. Оптимізовано пакетні завдання для використання менших пакетів транзакцій
  8. Додано індекси для зменшення непотрібного сканування таблиць під час пакетних операцій

Результат: Середній час запису на диск (сек.) знизився до 3 мс. Середня довжина черги диска стала меншою за 1. Час виконання пакетного завдання зменшився на 75%.

15. Майбутні тенденції в SQL Server Моніторинг

15.1 Інтеграція штучного інтелекту та машинного навчання

Штучний інтелект та машинне навчання трансформуються SQL Server монітор продуктивності.

Прогностична аналітика

Моделі машинного навчання прогнозують майбутні потреби в ресурсах на основі історичних даних. Ці системи можуть прогнозувати:

  • Коли ємність сховища буде вичерпана
  • Очікувані вимоги до процесора та пам'яті в періоди пікового навантаження
  • Зниження продуктивності запитів, перш ніж це вплине на користувачів
  • Оптимальний час для проведення технічного обслуговування

Виявлення аномалії

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

Автоматизована реабілітація

Системи самовідновлення автоматично вирішують поширені проблеми, коли їх виявляють:

  • Restarпослуги, що зупинилися
  • Перерозподіл ресурсів під час пікового навантаження
  • Застосування виправлень для відомих проблем
  • Автоматичне відновлення фрагментованих індексів

15.2 Еволюція хмарного моніторингу

Моніторинг хмарних технологій продовжує розвиватися завдяки новим можливостям.

Уніфіковані платформи моніторингу

Сучасні платформи забезпечують огляд через одне скло:

  • На місці SQL Server випадки
  • Хмара-hostбази даних
  • Гібридні середовища
  • Продуктивність програми
  • Метрики інфраструктури

Тенденції спостереження

Перехід від моніторингу до спостережливості підкреслює:

  • Розуміння поведінки системи з виходів
  • Кореляція метрик, журналів та трас
  • Глибоке розуміння розподілених систем
  • Діагностика проблем у режимі реального часу

15.3 Самовідновлювані системи баз даних

Future SQL Server версії матимуть більше автономних можливостей.

Автоматична оптимізація

Бази даних будуть постійно оптимізуватися шляхом:

  • Автоматичне створення та видалення індексів на основі робочого навантаження
  • Налаштування параметрів конфігурації для оптимальної продуктивності
  • Прозоре переписування неефективних запитів
  • Динамічне управління розподілом ресурсів

Інтелектуальне налаштування

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

16. Висновки та основні висновки

16.1 Короткий виклад основних практик моніторингу

Ефективний SQL Server Монітор продуктивності вимагає комплексного підходу, що поєднує інструменти, методи та найкращі практики.

Підсумок критичних лічильників

Зосередьте зусилля моніторингу на цих важливих лічильниках:

  • Пам'ять: тривалість життя сторінки, коефіцієнт звернень до кешу буфера, очікування надання пам'яті
  • Процесор: % процесорного часу, довжина черги процесора
  • Диск: середній час роботи диска в секунду/читання та запис, довжина черги диска
  • SQL ServerПакетні запити/сек, Компіляції/сек, Підключення користувачів

Огляд найкращих практик

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

16.2 Підхід до постійного вдосконалення

SQL Server Монітор продуктивності — це не одноразова діяльність, а безперервний процес, що потребує постійного вдосконалення.

Регулярні цикли огляду

  • Щоденно: Перевіряйте сповіщення та поточну продуктивність
  • Щотижнево: Огляд тенденцій та визначення нових проблем
  • Щомісяця: Аналіз довгострокових тенденцій та потреб у потужностях
  • Щоквартально: оновлення базових показників та перевірка ефективності моніторингу

Будьте в курсі подій за допомогою інструментів

Підтримуйте інструменти та методи моніторингу в актуальному стані:

  • Оцініть нові функції моніторингу в SQL Server поновлення
  • Тестування нових інструментів сторонніх розробників
  • Відвідуйте тренінги та конференції
  • Участь в SQL Server громадські форуми
  • Діліться знаннями з членами команди

16.3 наступних кроків

Здійснювати SQL Server систематично відстежувати ефективність:

Дорожня карта впровадження

  1. Тиждень 1: Налаштування монітора продуктивності з основними лічильниками
  2. Тиждень 2: Створення наборів збирачів даних для автоматизованого збору
  3. Тиждень 3: Встановлення базових рівнів під час звичайної експлуатації
  4. Тиждень 4: Налаштування сповіщень для критичних порогів
  5. Місяць 2: Впроваджуйте додаткові інструменти моніторингу (DMV, розширені події)
  6. Місяць 3: Розробляйте власні інформаційні панелі та звіти
  7. Триває: Удосконалювати моніторинг на основі досвіду та змінних вимог

Додаткові ресурси

Продовжуйте вивчати SQL Server монітор продуктивності за допомогою документації Microsoft, блогів спільноти та практичних вправ. Експериментуйте з різними інструментами та методами, щоб знайти те, що найкраще підходить для вашого середовища.

17. Поширені запитання (FAQ)

17.1 Що таке мost важливо SQL Server лічильники продуктивності для моніторингу?

Мost критичний SQL Server лічильники продуктивності включають:

  • Пам'ять: тривалість життя сторінки (має бути >300 секунд) та коефіцієнт потрапляння до буферного кешу (має бути >99%)
  • ЦП: % часу процесора (стабільні значення <75%) та довжина черги процесора (має бути <2 на ядро)
  • Диск: Середній час читання та запису на диску (<10-20 мс) та довжина черги диска (<2 на диск)
  • SQL ServerПакетні запити/сек, компіляції SQL/сек та очікування надання пам'яті (має бути 0)

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

17.2 Як часто слід збирати дані про ефективність?

Частота збору даних залежить від ваших цілей моніторингу:

  • Базовий моніторинг: кожну 1 хвилину (60 секунд)
  • Активне усунення несправностей: кожні 15-30 секунд протягом коротких періодів
  • Довгостроковий тренд: кожні 5 хвилин

Уникайте безперервного високочастотного збору даних, оскільки це може вплинути на продуктивність і генерувати надмірну кількість даних. Використовуйте довші інтервали для регулярного моніторингу, а коротші – лише під час дослідження конкретних проблем.

17.3 У чому різниця між Монітором продуктивності та SQL Server Профайлер?

Монітор продуктивності та SQL Server Профайлери служать різним цілям:

Монітор продуктивності:

  • Монітори системи та SQL Server лічильники продуктивності
  • Відстежує використання ресурсів (процесор, пам'ять, диск)
  • Низькі накладні витрати, підходить для безперервного моніторингу
  • Надає сукупні показники з плином часу

SQL Server профайлер:

  • Сліди індивідуальні SQL Server події та запити
  • Збирає детальну інформацію про виконання запитів
  • Вищі накладні витрати, не рекомендується для постійного використання
  • Найкраще підходить для вирішення проблем із конкретними запитами
  • Застаріло на користь розширених подій

Використовуйте Монітор продуктивності для загального моніторингу системи та Розширені події (не Профілер) для детального аналізу на рівні запитів.

17.4 Вплив монітора продуктивності Can SQL Server продуктивність?

За умови правильного налаштування, монітор продуктивності має мінімальний вплив на SQL Server продуктивність, зазвичай менше 2% накладних витрат. Однак надмірний моніторинг може спричинити проблеми:

  • Занадто багато лічильників збільшує накладні витрати
  • Дуже короткі інтервали вибірки (менше 15 секунд) напружують ресурси
  • Безперервний високочастотний збір даних генерує великі файли журналів

Щоб мінімізувати вплив:

  • Контролюйте лише необхідні лічильники
  • Використовуйте відповідні інтервали вибірки (60 секунд для рутинного моніторингу)
  • Зберігайте журнали на дисках окремо від файлів бази даних
  • Плануйте ресурсомісткий моніторинг у години поза піковими навантаженнями

17.5 Як довго слід зберігати дані моніторингу ефективності?

Зберігання залежить від ваших аналітичних потреб та обсягу сховища:

  • мінімум: 3 місяці на усунення нещодавніх проблем
  • Рекомендується: 1-2 роки на планування потужностей та аналіз тенденцій
  • Оптимальний: Невизначений термін, якщо дозволяє зберігання, оскільки історичні дані з часом стають ціннішими

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

17.6 Які порогові значення є хорошими для ключових лічильників ефективності?

Рекомендовані порогові значення для сповіщень:

  • Очікування надання пам'яті: Сповіщення, коли > 0
  • Тривалість життя сторінки: Сповіщати, коли < 300 секунд
  • % часу процесора: сповіщати, коли > 80% протягом 5 хвилин
  • Довжина черги процесора: сповіщення, коли > 2 на ядро
  • Середній час читання або запису на диску (сек): Оповіщення при > 20 мс
  • Довжина черги диска: Сповіщати, коли > 2 на диск
  • Заблоковані процеси: Сповіщати, коли > 5

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

17.7 Як мені контролювати SQL Server продуктивність віддалено?

Пульт дистанційного керування монітором SQL Server випадки використання цих методів:

  1. Монітор продуктивності: Вказуйте ім'я віддаленого комп'ютера під час додавання лічильників
  2. PowerShell: Використання параметра -ComputerName з Get-Counter
  3. DMV (Департаменти дорожнього руху): Підключення до віддалених серверів через SSMS та запити до DMV
  4. Інструменти сторонніх розробників: Most інструменти моніторингу підтримують віддалений моніторинг сервера

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

17.8 Який найкращий безкоштовний інструмент для SQL Server монітор продуктивності?

Для моніторингу доступно кілька чудових безкоштовних інструментів SQL Server продуктивність:

  • Монітор продуктивності Windows: Вбудований, комплексний та надійний
  • Монітор активності SSMS: Моніторинг у режимі реального часу без додаткового встановлення
  • Розширені події: Вбудований легкий моніторинг подій SQL Server
  • sp_ХтоІсАктивний: Популярна безкоштовна збережена процедура для детального моніторингу активності
  • Dash адміністратора баз даних: Інструмент моніторингу з відкритим кодом та комплексними функціями
  • SQLWATCH: Відкритий код з можливостями моніторингу майже в режимі реального часу

За мost організацій, Монітор продуктивності в поєднанні з інструментами SSMS та sp_WhoIsActive забезпечує чудові можливості моніторингу без додаткових витрат.ost.

17.9 Як експортувати дані PerfMon для аналізу?

Експортуйте дані монітора продуктивності за допомогою таких методів:

Експорт у CSV:

  1. Відкрийте монітор продуктивності із завантаженим файлом журналу
  2. Клацніть правою кнопкою миші на графіку та виберіть Зберегти дані як
  3. Оберіть Текстовий файл (розділений комами) (.csv)
  4. Виберіть місцезнаходження та збережіть
  5. Відкрити в Excel для аналізу

Використайте команду Relog:

relog input.blg -f csv -o output.csv

Ця утиліта командного рядка перетворює двійкові файли журналів (.blg) у формат CSV для легшого аналізу в програмах для роботи з електронними таблицями.

17.10 Коли слід використовувати сторонні інструменти моніторингу замість вбудованих опцій?

Розгляньте сторонні інструменти, коли:

  • Керування великою кількістю SQL Server екземплярів (10+)
  • Вимога централізованого моніторингу в кількох центрах обробки даних
  • Потреба в розширених функціях, таких як прогнозна аналітика або виявлення аномалій
  • Бажання інтегрованого оповіщення з системами управління інцидентами
  • Вимога звітності про відповідність вимогам та аналізу історичних даних
  • Брак ресурсів адміністратора баз даних для створення та підтримки користувацьких рішень
  • Моніторинг гетерогенних середовищ баз даних (SQL Server, Oracle, MySQL тощо)

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

18. Додаткові ресурси

18.1 Офіційна документація

Microsoft надає розширену документацію для SQL Server монітор продуктивності:

18.2 Рекомендовані інструменти та завантаження

Основні інструменти для SQL Server монітор продуктивності:

  • Інструмент PAL: https://github.com/clinthuffman/PAL
  • sp_ХтоІсАктивний: http://whoisactive.com/
  • Dash адміністратора баз даних: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Комплект рятувальника (Брент Озар): https://www.brentozar.com/first-aid/
  • SQL Server Студія управління: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Ресурси громади

Вчіться у SQL Server спільнота:

  • SQL Server Центральний: https://www.sqlservercentral.com/
  • Блог Брента Озара: https://www.brentozar.com/blog/
  • SQL-хатина: https://www.sqlshack.com/
  • Поради щодо MSSQL: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • переповнення стека SQL Server тег: https://stackoverflow.com/questions/tagged/sql-server

Ці ресурси містять навчальні посібники, поради щодо усунення несправностей та найкращі практики від досвідчених SQL Server професіоналів. Участь у форумах спільноти допомагає вам навчатися на досвіді інших та ділитися власними знаннями.


Про автора

Юань Шен є старшим адміністратором баз даних (DBA) з понад 10-річним досвідом роботи в SQL Server середовища та управління корпоративними базами даних. Він успішно вирішив сотні сценаріїв відновлення баз даних у фінансових службах, охороні здоров'я та виробничих організаціях.

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

Завдяки своїй технічній експертизі та практичному підходу, Юань зосереджується на створенні комплексних посібників, які допомагають адміністраторам баз даних та ІТ-фахівцям вирішувати складні SQL Server ефективно вирішує проблеми. Він слідкує за останніми новинками SQL Server випуски та технології баз даних Microsoft, що розвиваються, регулярно тестуючи сценарії відновлення, щоб переконатися, що його рекомендації відображають найкращі практики реального світу.

Є запитання щодо SQL Server відновлення чи потрібні додаткові інструкції з усунення несправностей бази даних? Юань вітає відгуки та пропозиції для покращення цих технічних ресурсів.

Поділитися зараз: