Много администратори на бази данни смятат, че мониторингът на производителността на SQL Server е тяхната най-важна отговорност. Като се има предвид, че слабо работещите сървъри могат да повлияят негативно не само на вътрешните операции, но и на приложенията, насочени към клиента, проследяването на SQL производителността и бързото смекчаване на проблемите са от решаващо значение за успеха и рентабилността на компанията.
Тъй като все повече организации се обръщат към SQL Server, администраторите на база данни все повече търсят ресурси, които да им помогнат да приложат солидна стратегия за наблюдение на производителността. Има изобилие от налична документация, която да помогне на DBA да стартират мониторинга на производителността на SQL Server, но има няколко универсални въпроса, на които почти всеки DBA иска бърз отговор. Ето отговорите на 10 от най-често задаваните въпроси за мониторинг на производителността на SQL Server.
Какво е наблюдение на производителността на SQL Server?
Основната цел на мониторинга на производителността на SQL Server е да осигури последователна производителност и висока наличност на екземпляри на SQL Server. Мониторингът на производителността е процес от две части и двете части са от съществено значение за поддържане на вашата система работеща оптимално:
-
Мониторинг: Проследявайте широк спектър от показатели за производителност спрямо предварително зададени прагове, за да идентифицирате аномално поведение и да осигурите механизъм за информиране на DBA с аларми, които са специфични за проблема и осигуряват достатъчно контекст, за да започне диагностичния процес.
-
Диагностика: Работният процес и инструментите, необходими за установяване на източника на проблем с производителността и данните, необходими за отстраняване на непосредствения проблем.
-
Анализ на първопричините: Прозренията, за да се погледне отвъд симптомите и да се идентифицират основните проблеми, които са предизвикали проблема и могат да доведат до повторното му възникване.
-
Анализ на тенденцията: Вижте производителността за продължителни периоди от време. Използвайте анализа на тенденциите, за да идентифицирате проблемите, преди да се появят, така че правете разлика между еднократни и повтарящи се проблеми или за да изследвате границите на работното натоварване във времето. Последният може да се използва за прогнозиране на бъдещи инфраструктурни нужди, информиране за усилията за консолидация или правилния размер за планирана миграция в облак.
Кои инструменти за наблюдение на производителността на базата данни са най-добри?
Броят на базите данни, за които отговаря DBA, прави ръчното наблюдение и диагностика непрактични — може би дори невъзможни. За щастие, най-новите софтуерни решения за мониторинг на производителността са оборудвани с множество функции, които правят мониторинга на производителността управляем, дори в голям мащаб:
-
Ефективно управление на аларми: Приоритизирането на алармите означава, че можете първо да се справите с големите проблеми и да игнорирате фалшивите аларми.
-
Пълна диагностика: Най-добрите инструменти за наблюдение на производителността ви позволяват да се потопите дълбоко в диагностиката. Да знаеш, че има проблем, не е толкова полезно, колкото да знаеш как да го поправиш.
-
Бързо време за оценка: Всеки екземпляр събира стотици показатели и съхраняването им на място ще се оскъпи бързо. Помислете за едно от решенията за мониторинг на производителността на SaaS за спестяване на разходи и мащабируемост.
-
Анализ: Стабилните анализи са основна разлика между инструментите за мониторинг на производителността. За максимално въздействие върху производителността изберете инструмент, който предоставя обширни показатели за работното натоварване, плана на заявката, основната причина за алармата и блокирането.
-
Проследяване на исторически данни: Потърсете инструмент за наблюдение на производителността, който запазва исторически данни. Това ще ускори отстраняването на неизправности, защото ще знаете дали проблемът се повтаря и как проблемите се проследяват във времето.
-
Настройка и оптимизиране на плана за заявки: Инструмент с вграден изкуствен интелект ще ви позволи да прецизирате заявките и да ги оптимизирате за конкретен случай.
-
Здравни проверки: Проверките на здравето следят жизнените показатели на SQL Server, за да ви уведомят, че може да имате проблем - понякога преди проблемът дори да е съществувал.
Ако искате инструмент с всички функции, обсъдени по-горе, ще трябва да потърсите едно от управляваните от облак решения за мониторинг на производителността на SQL Server. Ненадминати по мащабируемост, гъвкавост и цена, тези инструменти за наблюдение осигуряват сигурна платформа за наблюдение на производителността, която да отговори на всяка нужда.
Кой е най-добрият начин за оптимизиране на мониторинга на производителността на базата данни?
Един от най-добрите начини за оптимизиране на мониторинга на производителността е автоматизацията. Автоматизирането на общи задачи – като наблюдение на дисковото пространство, проверка на регистрационни файлове за грешки и проверка на архивите на базата данни – ще гарантира, че тези задачи са завършени, което дава на DBA повече време за извършване на работа с по-висока стойност.
Освен това можете да приложите следното, за да оптимизирате мониторинга на производителността на SQL Server:
-
Мобилно наблюдение: Мобилното наблюдение е достъпно от вашите Android и iOS устройства. Предоставяйки топлинни карти, интелигентни аларми и списъци с аларми, мониторингът на мобилната производителност ви позволява да диагностицирате проблеми и да започнете сортиране отвсякъде.
-
Настройка и оптимизиране на заявките: Настройката на производителността ви позволява да визуализирате, анализирате и оптимизирате вашите SQL заявки и планове за изпълнение, като подчертавате операторите с най-висока цена, предлагате предложения за корекции на проблеми и пренаписвате/оптимизирате вашите заявки и план за заявки.
-
Здравни проверки: Проверките на състоянието ви помагат да оптимизирате наблюдението на производителността, като идентифицирате здравословни проблеми във всеки екземпляр на SQL Server, включително дълго чакане и I/O латентност. Здравните проверки също предоставят исторически данни, така че можете да проследявате проблемите с производителността във времето.
Как да избера инструмент за наблюдение на SQL Server?
Има две основни съображения, когато се взема решение за инструмент за наблюдение на производителността на SQL Server.
Какъв вид инструмент търсите?
Има три основни типа инструменти за наблюдение на производителността, които трябва да имате предвид:
-
Персонализиран/изграден в къщата: В този случай имайте предвид, че това, че можете да направите нещо, не винаги означава, че трябва. Да, можете да съберете вътрешен инструмент за наблюдение на производителността, за да събирате показатели с помощта на PerfMon, следи, DMV и XEvents. Но минусите далеч надвишават плюсовете на поемането по този маршрут. Той не е мащабируем, така че с увеличаването на вашите екземпляри, вашите възможности за наблюдение на производителността страдат. Освен това не е възможно да наблюдавате всички неща, които трябва да гледате, за да осигурите оптимална производителност на SQL Server. След като започнете да събирате данни, трябва да ги съхранявате някъде, за да бъдат полезни, а това може да ви струва скъпо. В крайна сметка – по-ценно ли е за вас да прекарате ценното си време за изграждане и поддържане на инструмент за наблюдение на производителността или да го похарчите за коригиране и настройка на критични за мисията работни натоварвания.
-
Безплатен/отворен код: Това е потенциално по-добър избор от създаването на собствено решение за мониторинг на производителността, но все още има ограничения. Въпреки че получавате малко персонализиране, все още ви липсва широчина на покритие и предварително конфигурирани сигнали. Все още ще трябва да осигурите собствено място за съхранение на данни. Това е сложен процес за изграждане на инструмент, който може ефективно да улавя големи количества данни за производителността, без да влияе на наблюдавания сървър, да задава подходящи прагове за стотици показатели, да управлява големи обеми събрани данни и след това да поддържа това актуално от една версия на SQL сървър към следващия. Съсредоточете времето си върху решаването на проблеми, а не върху изграждането на системи за наблюдение на производителността. Ако сте зависими от актуализации на общността, поддръжката за нови версии на платформата за база данни може да изостане при издаването й.
-
Търговски: Търговските инструменти за мониторинг на производителността на SQL предлагат набор от функции и нива на персонализиране, като много от тях са изненадващо достъпни. Търговските инструменти улесняват наблюдението на производителността с опции като проверки на състоянието, управление на аларми, диагностика на производителността и възможности за наблюдение на мобилни устройства – функции, които няма да получите от безплатни инструменти или тези, вградени в компанията.
Какви са вашите нужди за вашата конкретна среда?
Преди да изберете инструмент за наблюдение на производителността, задайте си тези въпроси, които да ви помогнат да определите инструмента, който отговаря на вашите специфични нужди:
-
Колко екземпляра искате да наблюдавате?
-
Разпределени ли са или разпръснати?
-
Дали са на място или в облака (или и двете)?
-
Можете ли да си позволите еднократно плащане за инфраструктура и лицензиране или трябва да разпределите разходите?
-
Имате ли налични екземпляри на инфраструктура и база данни, които да посветите на инструмент за наблюдение?
-
Имате ли вътрешно време или ресурси за изграждане и поддържане на инфраструктура за наблюдение?
-
Инструментът има ли възможността незабавно да анализира натоварването на множество измерения, за да ви спести часове време за скриптиране?
-
Има ли интелигентна способност да анализирате данните и да ви помогне да идентифицирате конкретни проблеми?
-
Инструментът предоставя ли незабавна диагностика, най-добри практики или диагностика за съответната разбивка?
Кой е най-добрият начин за наблюдение на състоянието на производителността на базата данни?
Има няколко признака, че вашият SQL Server е нездравословен, включително:
-
Общо забавяне на натоварването
-
Време за изчакване на връзката/заявката
-
Прекомерно използване на процесора
-
Налягане на паметта
-
Прекомерно забавяне на I/O четене/запис
-
Прекомерен размер на регистъра на транзакциите или TempDB
Ако забележите някой от тези симптоми, е време да настроите здравни проверки, за да върнете системата си към върхова производителност. Някои първоначални стъпки, които можете да предприемете, за да идентифицирате причината за проблеми с производителността, включват:
-
Установяване на базова линия за ефективност и измерване спрямо нея
-
Проверка на резервни копия
-
Проверка за липсващи индекси
-
Определяне какъв процент от натоварването е от ad hoc заявки
Кои са най-добрите показатели за наблюдение на производителността на SQL Server?
Има стотици показатели, които можете да измерите, за да ви помогнат да проследявате и подобрявате производителността, но има няколко открояващи се, които трябва да бъдат част от всеки план за поддръжка на SQL Server. Ето няколко от основните области за наблюдение и показателите, които искате да следите:
-
Индекси. Индексите са чест източник на проблеми с производителността, тъй като базите данни са в постоянно състояние на промяна. Данните се добавят и премахват, а индексите се променят и изтриват, като всичко това допринася за лошо представяне. Това са показателите, които трябва да наблюдавате:
- Коефициент на запълване
- I/O
- Фрагментация
-
Буферен кеш. Важно е да конфигурирате буферния кеш, за да оптимизирате времето, през което страниците остават там, без да прекалявате и да претоварвате паметта, която е необходима другаде. Това са показателите, които трябва да наблюдавате:
- Продължителност на живота на страницата
- Съотношение на попадане в кеша на буфера
-
T-SQL. Вместо да изпълнява SQL изрази ad hoc, SQL Server ги събира партиди, компилира ги в план за изпълнение и ги кешира, като повторно компилира изразите, ако е необходимо. Прекомерните компилации и повторни компилации могат да влошат производителността. Това са показателите, които трябва да наблюдавате:
- SQL компилации
- Повторни компилации на SQL
-
Други показатели, които да наблюдавате внимателно:
- Заключва изчаквания и блокирани процеси
- Използване на процесора
Какви са често срещаните проблеми при наблюдението на производителността на базата данни?
Тесни места в производителността
Тесните места в производителността се проявяват като бавни или неотзивчиви бази данни. Тесните места могат да бъдат трудни за локализиране, защото могат да бъдат свързани с памет, съхранение или процесор. Има обаче няколко места, където първо трябва да потърсите проблеми:
- WRITELOG време за изчакване
- СЪЕДИНЯВАНЕ ОТ ВГЛАЖЕН LOOP
- Спор за TempDB
Ниска продължителност на живота на страницата (PLE)
Ниският PLE вреди на производителността, тъй като SQL Server трябва да ходи на диск по-често, за да намери файлове с данни, което отнема много повече време от четенето им от буферния кеш.
Фрагментация
Проверете вашите индекси за прекомерна фрагментация. Производителността на SQL Server страда, когато трябва да търси разпръснати и частично запълнени страници, за да намери данни.
Как трябва да настроя системата си за наблюдение на производителността на базата данни?
След като сте избрали решение за наблюдение на производителността на SQL Server, е време да го пуснете и стартирате. Въпреки че може да искате да се потопите във всички блестящи нови функции веднага, правенето на крачка назад и методичният подход към процеса ще ви помогне да извлечете максимума от вашата система. Ето няколко съвета за въвеждане на новия ви инструмент за управление на ефективността:
-
Решете кои случаи се нуждаят най-много от вашето внимание
-
Преминете през предпоставките
-
Познайте системните си изисквания
-
Изтеглете инсталационната програма
-
Добавете връзки
Какви заявки мога да използвам за наблюдение на производителността на SQL сървъра?
Заявките, които използвате за наблюдение на производителността, ще варират в зависимост от показателите, които проследявате. Въпреки това, откриването на проблеми с паметта, оценката на дефрагментацията на индекса и идентифицирането на неприемливи времена за изчакване вероятно са в горната част на контролния списък за мониторинг на производителността на всеки DBA. Документацията на Microsoft SQL Server предоставя подробности за редица запитвания, които да ви помогнат да приложите своя план за наблюдение на производителността:
-
Използване на паметта
-
Дефрагментиране на индекса
-
Изчакайте статистика
Какви са най-добрите практики за наблюдение на производителността на базата данни?
Някои хора не са съгласни с термина „най-добри практики“, но когато става въпрос за мониторинг на производителността на SQL Server, няма спор, че има определени неща, които DBA трябва да направи, за да поддържа системата здрава и потребителите да са щастливи.
Направете поддръжката на индекса приоритет
Пренебрегването на вашите индекси е сигурен начин за генериране на проблеми с производителността. Индексите са източник на често срещани убийци на производителността, включително фрагментация и разделяне на страници.
Познайте натовареността си
Трудно е да разберете кога имате проблем, ако не знаете как изглежда „нормалното“. Отделете малко време, за да опознаете натовареността си, като зададете въпроси като:
-
Кога този случай е най-натоварен?
-
Кои приложения използват този екземпляр?
-
Кога беше последното архивиране?
-
Този екземпляр има ли известни проблеми с производителността?
Изберете инструмент за наблюдение на производителността, който отговаря на вашите специфични нужди
Преди да се ангажирате с инструмент за наблюдение на производителността на SQL Server, първо трябва да дефинирате нуждите си. След като разберете какво се опитвате да постигнете с инструмента си за наблюдение на производителността, можете уверено да потърсите решение с функциите, които отговарят на вашите изисквания.
Намерете и коригирайте тесните места в производителността
Очевидните симптоми на тесни места в производителността включват използване на твърде много памет, дълго време на чакане, фрагментация на индекса и твърде много или твърде малко индекси. Бързото намиране и коригиране на тези тесни места е една от основните отговорности на DBA. Най-добрият начин да поддържате производителността на базата данни в върхово състояние е да внедрите инструмент за наблюдение на производителността, който ви помага лесно да намирате и отстранявате тесните места в производителността и други източници на влошаване на производителността.