DBA играят жизненоважна роля в една организация. Като пазители на данни, те са отговорни за управлението на всички аспекти на производителността на базата данни, включително висока наличност, бързо време за обработка на заявки и намаляване на риска и възстановяване при бедствия. Освен това DBA отговарят за бизнес целта да поддържат базите данни на организацията с оглед на възвръщаемостта на инвестициите и спестяването на разходи.
С всички различни шапки, които носят, администраторите на база данни трябва да работят ефективно, а ефективното управление на времето е техният най-добър приятел. Най-добрият начин за постигане на ефективност е първо да се съсредоточите върху ключовите дейности, които ще помогнат за поддържане на оптималната работа на базите данни.
Ето четири дейности за наблюдение на база данни, които трябва да оглавят списъка на всеки DBA със „трябва да се знае“.
Как (и защо) да коригирате настройките по подразбиране в SQL Server
Много DBA изпълняват SQL Server такъв, какъвто е, направо от кутията. Въпреки това, конфигурациите по подразбиране не винаги са най-добрият избор от гледна точка на сигурността или производителността. Базите данни на всяка организация са различни и отговарят на различни бизнес нужди, така че има смисъл само, че не всяка база данни е конфигурирана по същия начин.
В зависимост от вашите специфични нужди и предпочитания от базата данни, има няколко настройки по подразбиране на SQL Server, които може да искате да промените:
- Коефициент на запълване:Ако създадете индекс, без да посочвате стойността на коефициента на запълване, стойността по подразбиране е 0. Това означава, че страницата ще се запълни до капацитет и всякакви вмъквания, изтривания или актуализации могат да причинят прекомерно разделяне и фрагментация на страницата.
Няма универсално „правилна“ стойност на коефициента на запълване, но 80-90 обикновено е безопасен избор. Този диапазон от стойности позволява 80-90 процента от страницата да се запълни, оставяйки 10-20 процента свободни.
- Праг на разходите за паралелизъм:Прагът на разходите за паралелизъм е стойността, при която SQL Server двигателят започва да изпълнява паралелни планове за вашите заявки. Стойността по подразбиране е пет секунди, но тази стойност е доста ниска и може да създаде много ненужно сложни заявки, което ще се отрази негативно на производителността.
Започнете с настройка от 20 секунди и коригирайте според нуждите въз основа на изчакването на CXPACKET и използването на процесора.
- Автоматично нарастване на файла на базата данни:Автоматичното нарастване е процес, който възниква, когато SQL Server двигателят увеличава размера на файла с база данни, когато няма място. Колко нараства файлът е зададен по подразбиране на 1 MB за файлове с данни и 10 процента за регистрационни файлове на транзакциите.
Всяка база данни ще расте с различни темпове, така че преценете колко смятате, че базата данни ще нарасне и задайте съответно стойността.
- Модел за възстановяване на база данни:Моделът за възстановяване по подразбиране е ПЪЛЕН от кутията, но това не е ефективно за всички бази данни.
Променете настройката на ПРОСТО за бази данни, които не са критични и оставете настройката на ПЪЛЕН само за производствени бази данни с висок риск. - Максимална памет на сървъра:Стойността по подразбиране е 2 TB, което означава, че SQL Server разпределя цялата памет от операционната система. Това не оставя никаква памет за използване на ОС.
Коригирайте настройката, за да увеличите максимално количеството памет, налична за процеса на SQL Server, но оставете малко, за да използва ОС, ако е необходимо. - Максимална степен на паралелизъм (MAXDOP):MAXDOP контролира колко процесора се използват за изпълнение на заявка в паралелен план. По подразбиране е 0, което означава, че SQL Server може да определи колко процесора може да използва. Ако оставите цената на прага за паралелизъм на стойност по подразбиране 5, може да използвате всички процесори за всяка заявка.
Идеалната настройка на MAXDOP ще варира в зависимост от вашата конкретна система, но Microsoft предлага някои предложения тук. - Архивна компресия:Настройката по подразбиране за тази функция е ИЗКЛ. Въпреки това компресирането на архивиране ускорява операциите по архивиране на база данни и създава по-малък размер на архивните файлове, така че може да искате да го включите.
Един последен съвет за коригиране на настройките на SQL Server от стойностите по подразбиране:Винаги тествайте системата старателно, след като промените каквито и да е настройки, за да сте сигурни, че проблемите не са били въведени по невнимание.
Как да премахнем тесните места на SQL сървър
Тесните места на SQL Server са често срещан източник на проблеми с производителността, включително претоварване на процесора на SQL Server, дълги времена за изпълнение на заявка, прекомерно I/O и екстремна активност на дисковете.
Има много причини, които не са тесни места, поради които вашата база данни може да срещне тези проблеми с производителността, но ако проблемът произтича от тесните места на SQL Server, има три основни области, които вероятно ще бъдат засегнати:памет, I/O и CPU.
Тесните места в паметта са резултат от недостатъчни ресурси на паметта или дейности на SQL Server, използващи твърде много налична памет. Внимавайте за по-дълго време за изпълнение на заявка, прекомерно I/O, съобщения за липса на памет в дневника на приложението и чести сривове на системата.
I/O тесни места възникват, когато няма достатъчно място за съхранение, за да се поддържат редовни операции с база данни, като tempDB. Внимавайте за дълго време за реакция, забавяне на приложенията и чести изчаквания на задачите.
Тесните места на процесора са причинени от недостатъчни хардуерни ресурси. Потърсете в мониторинга на вашата база данни за регистрационни данни, показващи, че SQL Server използва прекомерно CPU.
Как да предотвратим растежа на tempDB
TempDB е временно работно пространство в екземпляри на SQL Server, използвано за създаване и задържане на междинни и временни обекти. TempDB е един от най-активните ресурси в среда на SQL Server, така че е важно да наблюдавате и контролирате прекомерния растеж на tempDB.
TempDB се използва често в рамките на екземпляр, тъй като се използва за съхраняване на потребителски обекти, вътрешни обекти и хранилища на версии. Прекомерното нарастване на tempDB може да причини проблеми с производителността, така че е важно да проследявате големи заявки, временни таблици и променливи на таблици, които използват голямо количество дисково пространство на tempDB.
За да оптимизира размера и растежа на tempDB, Microsoft препоръчва следните най-добри практики:
- Задайте модела за възстановяване на tempDB на SIMPLE
- Разрешете на tempDB файловете автоматично да нарастват според изискванията
- Задайте нарастването на файла на разумен размер, за да избегнете нарастването на файловете на базата данни tempDB с твърде малка стойност
- Предварително разпределете пространство за всички tempDB файлове, като зададете размера на файла на стойност, достатъчно голяма, за да поеме типичното работно натоварване в средата
- Направете всеки файл с данни със същия размер
Можете да регулирате размера и параметрите на растеж на файловете с данни tempDB, като използвате студио за управление на SQL Server.
Как да изчислим общата цена на притежание
Въпреки че може да не прекарвате много време в мислене за бюджета на вашата компания, по-добре вярвайте, че финансовият директор го прави. Когато дойде време да поискате нова технология за наблюдение на производителността, е разумно да се подготвите с твърди данни, за да архивирате заявката си.
Една от най-влиятелните данни, които можете да представите, е потенциалната обща цена на притежание (TCO) на новата технология спрямо текущото ви решение. В допълнение към преките разходи, не забравяйте да вземете предвид непреките разходи като инфраструктура и разходи за ресурси, като поддръжка.
Намаляването на TCO е обща цел за администраторите на база данни, които търсят да заменят текущия си инструмент за наблюдение на производителността на базата данни, така че има няколко фактора, които трябва да се вземат предвид. Както бе споменато по-горе, важно е да се разглеждат не само преките разходи, като например покупната цена, но и непреките разходи като съхранение и разходи за ресурси, като например обучение.
За да определите TCO за новия инструмент, включете своите спецификации в калкулатор на TCO и вижте какви са спестяванията на разходите, ако има такива.