Администраторите на бази данни носят много шапки зад кулисите - от планиране на капацитет до сигурност до възстановяване на данни. Може би най-видимата от отговорностите на DBA е наблюдението на производителността на SQL Server. Въпреки че ежедневните задачи, свързани с поддържането на високопроизводителна система, може да останат незабелязани от външния свят, по-добре вярвайте, че хората ще започнат да обръщат внимание, когато производителността е по-ниска от идеалната.
Прекъсванията на базата данни, бавното време за реакция и други проблеми, с които се сблъскват потребителите, са лоши за бизнеса. И тъй като производителността на SQL Server (или липсата на такава) пада директно в домейна на DBA, лошо работещите бази данни са лоши за сигурността на работата ви.
Като оставим настрана заплахата от безработица, гарантирането на върхова производителност на SQL Server е от решаващо значение за способността на вашата организация да работи гладко, така че съставихме пет трика, които DBA трябва да знаят, за да оптимизират производителността на SQL Server.
Автоматизиране на рутинни задачи и поддръжка
В наши дни има малка причина DBA да извършва много ежедневни задачи и проверки за поддръжка ръчно. Днешните инструменти за мониторинг на производителността на SQL Server могат автоматично да наблюдават дисковото пространство, да проверяват регистрационните файлове за грешки и да проверяват архивирането. Можете дори да настроите системни сигнали, които не само ви уведомяват, че има проблем, но и предоставят информация за тежестта и вида на проблема.
Едно от основните предимства на тези инструменти за наблюдение е, че много от функциите за наблюдение на производителността са достъпни през вашето мобилно устройство, което прави отстраняването на неизправности много по-гъвкаво. Можете да наблюдавате и сортирате системата си от практически навсякъде по всяко време.
Проследяване на показателите за ефективност
Разбира се, важно е вашите инструменти за наблюдение на производителността на SQL Server да улавят и коригират текущи проблеми, но има и голяма полза от проследяването на минала производителност. Наблюдението и анализирането на производителността на базата данни във времето ви помага да идентифицирате тенденциите и да предвидите бъдещи проблеми с производителността. Проследяването на историята на ефективността предоставя данни за това дали ефективността е по-добра или по-лоша за даден период от време.
Анализът на работното натоварване е друг начин да получите показатели за производителност, които ви помагат да подобрите производителността на SQL Server. Изпълнете анализ, за да определите как даден потребител, база данни, хост или SQL изявление оказва влияние върху вашето работно натоварване. Ако изолирате източник, който оказва негативно влияние върху системата, става много по-лесно да предприемете съответните стъпки за отстраняване на проблема.
Определете основната причина за тесните места
Както беше посочено по-горе, след като изолирате източника на тесно място или убиец на производителността, е много по-лесно да коригирате проблема. Някои често срещани източници на затруднения и симптоми, за които трябва да внимавате, включват:
- Проблеми с процесора:SQL Server претоварва процесора
- Проблеми с паметта:По-дълго време за изпълнение на заявките
- Проблеми със съхранението:Изключителна активност на дисковете и дълго време на изчакване на I/O
- Проблеми с I/O:Времето за изчакване на WRITELOG е голямо в сравнение с общото време на изчакване
След като идентифицирате своето тесно място, има няколко корекции, които можете да опитате, които често се грижат за общи проблеми с производителността, включително:
- Настройка на SQL сървъра:Изолирайте конкретната заявка, която е била забавена, конкретното време на изчакване, причиняващо забавянето, и влиянието на времето на затрудненото място
- Отървете се от остарели и дублиращи се индекси:Ускорява заявките, тъй като оптимизаторът не трябва да взема предвид множество индекси, когато анализира ефективността на заявката и определя план.
- Поправете фрагментацията:Периодичното възстановяване или дефрагментиране на вашите индекси ще подобри производителността чрез намаляване на броя на разпръснатите или частично запълнени страници с данни, които SQL Server трябва да прочете.
Извършване на рутинни проверки на работоспособността
Превенцията почти винаги е по-добра от лечението. Използвайте здравни проверки, за да идентифицирате действителни и потенциални проблеми в системата. Проверките на здравето ще ви помогнат да определите проблемите със сигурността, възстановяването при бедствия, паметта, входно/изходното устройство и конфигурацията, преди да причинят сериозни проблеми с производителността.
Редовните здравни прегледи трябва да включват:
- Проверка за липсващи индекси:Липсващите индекси карат SQL Server да реагира бавно, защото трябва да търси данни във всеки запис. Но не бързайте да добавяте липсващи индекси; добавянето на ненужни индекси също може да повлияе негативно на производителността.
- Наблюдаване за непропорционални нива на ad hoc заявки:Използването на ad hoc заявки от време на време не е проблем. Но когато се използват твърде често, производителността страда. SQL Server не използва повторно тези изрази, така че кешът на процедурите се раздува, което води до изтриване на данни от буферния кеш. След това SQL Server трябва да чете данни от диска (бавно), вместо от паметта.
- Търсене на остарели статистически данни:Оптимизаторът на заявки на SQL Server използва статистически данни, за да изчисли прогнозната цена на операциите. Остарели статистически данни може да накарат оптимизатора на заявки да избере неоптимален план за изпълнение.
Надстройте до най-новата версия на SQL Server
Това изглежда очевидно, но ако все още не сте го направили, надстройте до най-новата версия на SQL Server. SQL Server 2000, 2005 и 2008 вече не се разработват активно, а по-новите версии имат много функции, които определено ще повишат производителността. Тези функции включват най-новата версия на оптимизатора на заявки на SQL Server, нови набори от инструкции на процесора и, разбира се, корекции на грешки.