Қазір бөлісу:
Мазмұны жасыру

1. Кіріспе SQL Server Өнімділік мониторы

1.1 не SQL Server Өнімділік мониторы?

SQL Server өнімділік мониторы – бұл сіздің өнімділігіңіз бен денсаулығыңызды қадағалау, талдау және басқару процесі SQL Server мәліметтер базасы. Ол оңтайлы өнімділікті қамтамасыз ету, мәселелерді болдырмау және дерекқордың денсаулығын сақтау үшін дерекқор жүйесінің әртүрлі аспектілері туралы деректерді жинауды және түсіндіруді қамтиды.

Өнімділік мониторингі сұрауды орындау уақытын, ресурстарды пайдалануды, индекс өнімділігін, бұғаттауды және тұйықталуды және дерекқордың өсу үлгілерін бақылауды қамтиды. Бұл үздіксіз бақылау әкімшілерге ықтимал проблемаларды пайдаланушыларға немесе бизнес операцияларына әсер етпес бұрын анықтауға көмектеседі.

1.2 Өнімділік мониторингінің негізгі артықшылықтары

әсерлі SQL Server өнімділік мониторы бірнеше маңызды артықшылықтар береді:

  • Проактивті мәселені анықтау: Пайдаланушыларға немесе бизнес операцияларына әсер етпес бұрын ықтимал проблемаларды анықтаңыз және шешіңіз
  • Өнімділікті оңтайландыру: Жалпы дерекқор жұмысын жақсарту үшін кедергілер мен тиімсіздіктерді анықтаңыз
  • Сыйымдылықты жоспарлау: Тарихи деректер негізінде ресурстарға қажеттілікті болжау және болашақ өсуді жоспарлаңыз
  • Сәйкестік және қауіпсіздік: Нормативтік талаптардың сақталуын қамтамасыз ету және күдікті әрекеттерді анықтау

1.3 Жалпы өнімділік қиындықтары

Тиісті SQL дерекқор өнімділігі мониторынсыз ұйымдар бірнеше тәуекелдерге тап болады:

  • Бизнес операцияларын бұзатын күтпеген тоқтау
  • Қолданбаның нашар өнімділігі пайдаланушы тәжірибесіне әсер етеді
  • Деректердің жоғалуы немесе бүлінуі
  • Ресурстарды тиімсіз пайдалану қажетсіз шығындарға әкеледі
  • Көңілсіз пайдаланушылар және ықтимал кіріс жоғалуы

2023 жылғы IDC зерттеуіне сәйкес, дерекқор өнімділігі мәселелерінің 65% нашар бақылау немесе оңтайландыру тәжірибесінен туындайды.

2. Windows өнімділік мониторын түсіну (PerfMon)

2.1 Windows өнімділік мониторы дегеніміз не?

Windows Performance Monitor (PerfMon) – жүйе ресурстары мен қолданба өнімділігін бақылайтын кірістірілген Windows құралы. үшін SQL Server әкімшілер үшін PerfMon операциялық жүйеге де, екеуіне де баға жетпес түсініктер береді SQL Server көрсеткіштер, бұл өнімділікті жан-жақты талдау үшін маңызды етеді.

Windows өнімділігі мониторы (PerfMon)

PerfMon өнімділік статистикасын жүйелі түрде өлшейді және сол статистиканы кейінірек талдау үшін файлдарға сақтайды. Дерекқор әкімшілері уақыт аралығын, файл пішімін және қандай статистиканы бақылайтынын таңдай алады. Құрал олай емес SQL Server-арнайы—жүйе әкімшілері оны Windows жүйесінің өзін, Exchange, файл серверлерін және қиындықтар туындауы мүмкін кез келген қолданбаны бақылау үшін пайдаланады.

2.2 Өнімділік мониторын іске қосу

Өнімділік мониторын бірнеше әдіс арқылы іске қосуға болады:

  1. басыңыз бастау, теріңіз пермон іздеу жолағында іздеу нәтижесіндегі «Орындау мониторы» түймесін басыңыз:
    Windows іздеу жолағынан PerfMon іздеп, іске қосыңыз.
  2. баспасөз Windows + R, теріңіз пермонтүймесін басып, түймесін басыңыз кіру
    PerfMon бағдарламасын Windows іске қосу терезесінен іске қосыңыз.
  3. Шарлау тармағына өтіңіз Басқару панелі -> Жүйе және қауіпсіздік -> Әкімшілік құралдар -> Өнімділік мониторы
    PerfMon бағдарламасын Басқару тақтасы -> Жүйе және қауіпсіздік -> Әкімшілік құралдар -> Өнімділік мониторынан іске қосыңыз

3. қажетті SQL Server Өнімділік есептегіштері

3.1 Жад өнімділігін есептегіштер

Жад есептегіштері бақылау үшін өте маңызды SQL Server өнімділігі, себебі олар дерекқорыңызда жеткілікті жад ресурстары бар-жоғын көрсетеді.

Қолжетімді Мбайт

Бұл есептегіш бөлу үшін дереу қол жетімді физикалық жад көлемін көрсетеді. Ол айтарлықтай тұрақты болып қалуы керек және ең дұрысы 4096 МБ-тан төмен түспеуі керек. Төмен мәндер мұны көрсетуі мүмкін SQL Serverмаксимум жад параметрі әдепкіде қалдырылады немесеSQL Server қолданбалар жадты тұтынады.

Беттің өмір сүру ұзақтығы

Беттің қызмет ету мерзімі беттің сілтемесіз буферлік пулда қанша уақыт (секундтармен) қалуын өлшейді. Қалыпты мән 300 секунд немесе одан да көп. Төменгі мәндер жад қысымы мен шамадан тыс буфер айналымын көрсетеді, бұл кэш тиімділігін төмендетеді.

Буфер кэшінің соққы коэффициенті

Бұл есептегіш дискіден оқудың орнына SQL буферінің кэш (жад) арқылы жауап берілген деректер сұрауларының пайызын көрсетеді. Ол әдетте 99% сәйкес келеді немесе асады. Төменгі мәндер мұны көрсетеді SQL Server көбірек жад қажет немесе қайта іске қосқаннан кейін әлі де қызып жатыр.

Жад гранттары күтілуде

Бұл жадты күтетін процестердің санын көрсетеді SQL Server. Қалыпты жағдайларда бұл мән тұрақты түрде 0 болуы керек. Жоғары мәндер жадтың жеткіліксіз бөлінуін көрсетеді. SQL Server.

Мақсатты сервер жады және жалпы сервер жады

Мақсатты сервер жады жадтың ең жақсы мөлшерін көрсетеді SQL Server пайдаланғысы келеді. Жалпы сервер жады нені көрсетеді SQL Server қазіргі уақытта қолданады. Бұл мәндер арасындағы қатынас шамамен 1 болуы керек. Елеулі айырмашылықтар жад қысымын немесе қол жетімді жадтың жеткіліксіздігін көрсетуі мүмкін.

3.2 Процессор өнімділігінің есептегіштері

CPU есептегіштері процессордың кедергілерін анықтауға және қалай түсінуге көмектеседі SQL Server есептеу ресурстарын пайдаланады.

% Процессор уақыты

Бұл процессордың бос емес ағындарды орындауға жұмсайтын өткен уақытының пайызын өлшейді. Белсенді серверлерде мәндер 100%-ға дейін көтерілуі мүмкін, бірақ 70-75%-дан жоғары тұрақты пайдалану әдетте пайдаланушылар үшін өнімділік мәселелерін көрсетеді. Жетіспейтін немесе сәйкес келмейтін индекстер көбінесе процессорды жоғары пайдалануды тудырады.

% Артықшылықты уақыт

Процессор уақыты Пайдаланушы режиміне және Артықшылықты (ядро) өңдеу режиміне бөлінеді. Барлық дискіге кіру және енгізу/шығару ядро ​​режимінде орын алады. Егер бұл есептегіш 25%-дан асса, жүйе тым көп енгізу/шығару орындауы мүмкін. Қалыпты мәндер 5% және 10% аралығында болады.

Процессор кезегінің ұзындығы

Бұл есептегіш процессор ресурстарын күтетін ағындарды көрсетеді. Мәндер үнемі 1-ден жоғары (кезінде SQL Server резервтік қысу) процессордың қысымын көрсетеді. Бұл көбінесе басқа қолданбалардың орнатылғанын білдіреді SQL Server ең жақсы тәжірибелерді бұзатын машина.

Мәтінмәндік қосқыштар/сек

Бұл процессордың ағындар арасында қаншалықты жиі ауысатынын өлшейді. Шамадан тыс контекст ауысуы өнімділікке әсер етуі мүмкін және жоғары жүйе жүктемесін көрсетеді.

3.3 Дискінің енгізу/шығару өнімділігін есептегіштер

Диск есептегіштері SQL өнімділігін бақылау үшін өте маңызды, өйткені диск енгізу/шығару жиі дерекқор жүйелеріндегі негізгі кедергіге айналады.

% Диск уақыты

Бұл дискінің оқу/жазу операцияларымен бос емес уақытының пайызын жазады. Тұрақты түрде 85%-дан жоғары мәндер енгізу/шығару кедергісін көрсетеді. Диск жадқа қарағанда әлдеқайда баяу болғандықтан, бұл көрсеткішті азайту өнімділікті жақсартады.

Орт. Диск сек/оқу және орт. Диск сек/Жазу

Бұл есептегіштер оқу және жазу операциялары үшін орташа уақытты (секундтармен) өлшейді. Егер орташа мәндер 10-20 мс асса, дискіге деректерді өңдеу тым ұзақ уақыт алады. Транзакция журналының дискілері әсіресе жылдам жазу өнімділігін талап етеді.

Диск кезегінің ұзындығы

Бұл дискіге оқу/жазу үшін көрнекті сұрауларды көрсетеді. 2-ден жоғары мәндер (немесе RAID массивтері үшін әр дискіге 2) дискінің енгізу/шығару сұрауларына жауап бере алмайтынын көрсетеді.

Диск байты/сек

Бұл дискіге/дисктен деректерді тасымалдау жылдамдығын бақылайды. Егер бұл дискінің номиналды сыйымдылығынан асып кетсе, Диск кезегі ұзындығын арттыру арқылы көрсетілгендей деректер артта қалады.

Диск тасымалдаулары/сек

Бұл дискіде орындалатын оқу/жазу операцияларының санын бақылайды. SQL Server деректерге қол жеткізу әдетте кездейсоқ, ол жетек басының қозғалысына байланысты баяуырақ. Бұл мән диск жетегінің максималды рейтингінен төмен тұрғанына көз жеткізіңіз (әдетте стандартты дискілер үшін 100/сек).

3.4 SQL Server Арнайы есептегіштер

3.4.1 Буфер басқарушы есептегіштері

Буфер реттеушісі есептегіштер мониторы SQL Serverжад буферінің операциялары:

  • Беттің оқылу саны/сек: Физикалық дерекқор бетінің оқуларының жиынтық саны
  • Бет жазу/сек: Физикалық дерекқор беті жазбаларының жиынтық саны
  • Lazy жазады/сек: Жадты босату үшін жалқау жазушы жазған буферлердің саны
  • Бақылау нүктесі беттері/сек: Тексеру нүктесі арқылы тазартылған беттер немесе барлық лас беттерді жууды қажет ететін басқа әрекеттер

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. Әдепкі бойынша, жаңа деректер жинағыш жинағы болады ЕМЕС автоматты түрде іске қосылады. Оны сол жақ панельден, астында табуыңыз керек орындау -> Деректер жинағыш жинақтары -> Пайдаланушы анықтаған -> Деректер жинағышыңыз, оны тінтуірдің оң жақ түймешігімен басып, таңдаңыз бастау
    PerfMon бағдарламасында жаңа деректер жинаушы жиынтығын іске қосыңыз.

4.3 Қосылатын негізгі есептегіштер

  • Жад -> Қолжетімді Мбайт
  • Физикалық диск -> Орт. Disk sec/Read (_Total қоспағанда барлық даналар)
  • Физикалық диск -> Орт. Disk sec/Write (_Total қоспағанда барлық даналар)
  • Физикалық диск -> Диск оқулары/сек (_Барлық дан басқа барлық даналар)
  • Физикалық диск -> Дискіні жазу/сек (_Барлықтан басқа барлық даналар)
  • Процессор -> % Процессор уақыты (_Total қоспағанда барлық даналар)
  • SQLServer: Жалпы статистика -> Пайдаланушы қосылымдары
  • SQLServer: Жад менеджері -> Жад гранттары күтілуде
  • SQLServer: SQL статистикасы -> Пакеттік сұраныстар/сек
  • SQLServer: SQL статистикасы -> SQL жинақтары/сек
  • SQLServer: SQL Statistics -> SQL Recompilations/сек
  • Жүйе -> Процессор кезегі ұзындығы

4.4 Тоқтату шарттарын орнату

Деректердің шексіз өсуін болдырмау үшін тоқтату шарттарын конфигурациялаңыз:

  1. Деректер жинағыш жинағын жасағаннан кейін оны тінтуірдің оң жақ түймешігімен басып, таңдаңыз Сипаттар
  2. басыңыз Тоқтату шарты қойындысы
  3. қосу Жалпы ұзақтығы
  4. Ұзақтығын 1 күнге (24 сағат) орнату
  5. басыңыз OK сақтау

Деректер жинағыш жинағы үшін тоқтату шартын орнатыңыз

Бұл журналдың тым үлкен болмауын қамтамасыз етеді және жоспарланған жағдайда автоматты түрде қайта іске қосылады.

4.5 Деректерді жинауды жоспарлау

Тұрақты мониторингті қамтамасыз ету үшін деректерді жинауды автоматтандыру:

  1. Деректер жинағыш жинағын тінтуірдің оң жақ түймешігімен басып, таңдаңыз Сипаттар
  2. басыңыз кесте қойындысы
  3. басыңыз қосу жаңа кесте құру үшін
  4. Басталу күні мен уақытын конфигурациялау
  5. Қайталану үлгісін орнату (мысалы, күнделікті)
  6. басыңыз OK кестені сақтау үшін

Деректер жинағыш жинағы үшін кестені орнатыңыз

Автоматты түрде іске қосу үшін, Windows Task Scheduler бағдарламасында іске қосу триггерін жасау арқылы сервер жүктелгенде Деректер жинаушы жиынтығын іске қосу үшін конфигурациялаңыз.

5. Өнімділік мониторын орнату SQL Server(Windows XP / Server 2003 және одан бұрынғы)

Windows XP / Server 2003 және одан бұрынғы нұсқалары үшін өнімділік есептегіштерінің жинағын таңдауға және оларды файлға мерзімді түрде тіркеуге мүмкіндік беретін Есептеу журналдарын жасауға болады.

5.1 Есептеу журналдарын құру

Жаңа есептегіш журнал жасау үшін мына қадамдарды орындаңыз:

  1. Өнімділік мониторын ашыңыз
  2. кеңейту Өнімділік журналдары және ескертулер сол жақ тақтада
  3. Тінтуірдің оң жағын басыңыз Есептегіш журналдар
  4. таңдау Жаңа журнал параметрлері
  5. Журналды дерекқор серверінің атымен атаңыз (мысалы, “ProductionSQL01”)
  6. басыңыз OK конфигурациялауды бастау үшін

Әрбір сервер үшін бөлек есептегіш журналдарды жасау бір уақытта барлық серверлер үшін деректерді жинамай, жеке серверлердегі өнімділікті тексеруге мүмкіндік береді.

5.2 Өнімділік есептегіштерін қосу

Есептегіш журналды жасағаннан кейін бақыланатын арнайы өнімділік есептегіштерін қосыңыз:

  1. басыңыз Есептегіштерді қосыңыз түйме
  2. Сіздің компьютеріңіздің атын көрсету үшін өзгертіңіз SQL Server данасы
  3. баспасөз Tab қол жетімді өнімділік нысандарын жүктеу үшін
  4. Ашылмалы тізімнен өнімділік нысанын таңдаңыз (мысалы, жад)
  5. Нақты есептегіштерді таңдаңыз тізім
  6. Қажет болса, даналарды таңдаңыз (мысалы, жеке процессорлар немесе дискілер)
  7. басыңыз қосу есептегішті қосу үшін
  8. Барлық қажетті есептегіштер үшін қайталаңыз
  9. басыңыз жақын аяқталған кезде

5.3 Үлгі аралықтарын конфигурациялау

Үлгі аралығы өнімділік мониторының деректерді қаншалықты жиі жинайтынын анықтайды. Бақылау қажеттіліктеріңізге негізделген сәйкес аралықтарды конфигурациялаңыз:

  1. Есептегіш журнал сипаттарында табыңыз Әрбір үлгі деректер
  2. Аралықты орнатыңыз (әдепкі 15 секунд)
  3. Базалық бақылау үшін күнделікті жинау үшін 1 минуттық аралықтарды пайдаланыңыз
  4. Ақаулықтарды жою үшін қысқа үзілістер үшін 15-30 секунд аралығын пайдаланыңыз
  5. басыңыз OK қолдану

Кішігірім аралықтардың көбірек деректер тудыратынын есте сақтаңыз, бұл көрсету және талдау қиынырақ болуы мүмкін. Үлкенірек интервалдар маңызды өсулерді жіберіп алуы мүмкін. Деректердің түйіршіктілігін сақтау және талдау талаптарымен теңестіріңіз.

5.4 Журнал файлдарын конфигурациялау

Журнал файлының дұрыс конфигурациясы деректердің тиімді және қолжетімді сақталуын қамтамасыз етеді:

  1. басыңыз журнал файлдарын есептегіш журнал сипаттарындағы қойынды
  2. Журнал файлының түрін өзгертіңіз Мәтіндік файл (үтірмен бөлінген) оңай Excel импорты үшін
  3. басыңыз конфигурациялау
  4. Файл жолын арнайы орынға орнату (мысалы, ортақ PerformanceLogs қалтасы)
  5. басыңыз OK қабылдау

Файлдарға қашықтан қол жеткізу және оларды басқа пайдаланушылармен бөлісу үшін журналды сақтау үшін желіге қолжетімді ортақ пайдалануды пайдаланыңыз.

5.5 Тіркелгі деректерін орнату

Performance Monitor қашықтан қол жеткізе алатындай сәйкес тіркелгі деректерін конфигурациялаңыз SQL Server жағдайлар:

  1. Есептегіш журнал сипаттарында табыңыз Басқаша іске қосу
  2. Доменнің пайдаланушы атын келесі пішімде енгізіңіз: DOMAIN\пайдаланушы аты
  3. басыңыз Құпия сөзді орнатыңыз
  4. Құпия сөзіңізді енгізіңіз және растаңыз
  5. басыңыз OK сақтау

Бұл PerfMon қызметіне жеке тіркелгі деректерін емес, домен рұқсаттарын пайдаланып статистиканы жинауға мүмкіндік береді.

6. Өнімділік мониторының деректерін талдау

6.1 Performance Monitor бағдарламасында журнал файлдарын қарау

Өнімділік мониторы сақталған журнал файлдарындағы тарихи деректерді көрсете алады:

  1. Өнімділік мониторын ашыңыз
  2. Сол жақ тақтада түймесін басыңыз Бақылау құралдары -> Өнімділік мониторы.
  3. График аймағындағы кез келген жерді тінтуірдің оң жақ түймешігімен басыңыз
  4. таңдау Сипаттар
    График аймағындағы кез келген жерді тінтуірдің оң жақ түймешігімен басу арқылы PerfMon ішінде сипаттарды ашыңыз.
  5. басыңыз қайнар көз қойындысы
  6. таңдау Журнал файлдары радио түймесі
  7. басыңыз қосу
  8. Журнал файлына өтіңіз (.bg немесе .csv)
  9. Файлды таңдап, түймесін басыңыз ашық
    Журнал файлын PerfMon ішіндегі графиканың көзі ретінде орнатыңыз.
  10. пайдаланыңыз Уақыт диапазоны талдағыңыз келетін кезеңді таңдау үшін жүгірткі
  11. басыңыз OK Сипаттар тілқатысу терезесін жабу үшін
  12. Журнал файлынан есептегіштерді қосу үшін жасыл плюс белгішесін басыңыз
    PerfMon жүйесіндегі журнал файлынан есептегіштерді қосу үшін жасыл плюс белгішесін басыңыз.
  13. Көрсетілетін қажетті есептегіштерді таңдаңыз
    PerfMon сызбасына қажетті есептегіштерді қосыңыз.
  14. басыңыз OK

График енді журнал файлындағы тарихи деректерді көрсетеді. Егжей-тегжейлі талдау үшін арнайы уақыт кезеңдерін тарылту үшін Сипаттар ішіндегі Уақыт ауқымы жүгірткісін пайдаланыңыз.

6.2 Деректерді Excel бағдарламасына экспорттау

Excel өнімділік есептегіш деректері үшін қуатты талдау мүмкіндіктерін ұсынады:

  1. Журнал файлы жүктелген кезде өнімділік мониторын ашыңыз
  2. График аймағындағы кез келген жерді тінтуірдің оң жақ түймешігімен басыңыз
  3. таңдау Деректерді басқаша сақтау
  4. Файл үшін орынды таңдаңыз
  5. таңдау Мәтіндік файл (үтірмен бөлінген) (.csv) ашылмалы тізімнен
  6. басыңыз сақтау
  7. Excel бағдарламасында CSV файлын ашыңыз

Деректерді PerfMon ішіндегі файлға экспорттаңыз.

Жақсырақ талдау үшін экспортталған деректерді пішімдеңіз:

  1. Жартылай бос 2 жолды жойып, A1 ұяшығын тазалаңыз
  2. А бағанын Күн/Уақыт ретінде пішімдеңіз
  3. Нөлдік ондық және мыңдық бөлгіші бар сандық бағандарды пішімдеңіз
  4. Тақырыптардағы сервер атауларын табу және ауыстыру (мысалы, “\\SERVERNAME” дегенді бос орынмен ауыстырыңыз)
  5. Тақырыптардағы нысан атауларын тазалау (мысалы, «Жад», «Физикалық диск», «Процессор»)
  6. Жақсырақ көріну үшін тақырып қаріпінің өлшемін 8 нүктеге дейін азайтыңыз

6.3 Есептегіш мәндерді интерпретациялау

6.3.1 Жад санауыштарын талдау

Жад есептегіштерін талдау кезінде мына көрсеткіштерді іздеңіз:

  • Қолжетімді Мбайттар: Тұрақты түрде 4096 МБ-тан жоғары болуы керек
  • Беттің қызмет ету мерзімі: 300 секундтан жоғары мәндер сау жадты көрсетеді. Төменгі мәндер жад қысымын көрсетеді
  • Буфер кэшінің соққы коэффициенті: 99% сәйкес келуі немесе жоғары болуы керек. Төменгі мәндер дискінің шамадан тыс оқуын көрсетеді
  • Күтудегі жад гранттары: Әрқашан 0 болуы керек. Кез келген оң мән жадтың жетіспеушілігін көрсетеді

6.3.2 CPU санауыш талдауы

CPU өнімділігі көрсеткіштеріне мыналар жатады:

  • % Процессор уақыты: 75%-дан астам тұрақты пайдалану өнімділік мәселелерін көрсетеді. 100%-ға дейін өсу қалыпты, бірақ сақталмауы керек
  • Процессор кезегінің ұзындығы: 1-ден жоғары мәндер процессордың қысымын көрсетеді. Қандай процестер процессорды тұтынатынын анықтау үшін Тапсырмалар реттеушісін тексеріңіз
  • % Артықшылықты уақыт: 5-10% аралығында болуы керек. 25% жоғары мәндер шамадан тыс енгізу/шығару операцияларын көрсетеді

6.3.3 Дискінің есептегішін талдау

Диск өнімділігінің шектері:

  • Орт. Диск сек/оқу және жазу: 10-20 мс төмен тұруы керек. Жоғары мәндер дискінің ішкі жүйелері баяу екенін көрсетеді
  • Диск кезегінің ұзындығы: 2-ден жоғары мәндер (немесе RAID жүйесінде әр дискіге 2) енгізу/шығару кедергілерін көрсетеді
  • % Диск уақыты: 85% жоғары тұрақты мәндер дискінің қанықтылығын көрсетеді

6.4 Формулалар мен статистиканы қолдану

Жылдам талдау үшін Excel бағдарламасына статистикалық формулаларды қосыңыз:

  1. Электрондық кестенің жоғарғы жағына 7 бос жолды енгізіңіз
  2. А бағанында белгілерді қосыңыз: Орташа, Медиана, Мин, Макс, Std ауытқуы
  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 өнімділікті оңтайландыру.

GitHub репозиторийінен PAL жүктеп алыңыз: https://github.com/clinthuffman/PAL Сыртқы сілтеме

7.2 PAL орнату

Мына қадамдарды орындау арқылы PAL орнатыңыз:

  1. GitHub сайтынан PAL орнату файлын жүктеп алыңыз
  2. Орнатушыны іске қосыңыз
  3. басыңыз Келесі сәлемдесу экранында
  4. Орнату каталогын қарап шығыңыз және қабылдаңыз
  5. басыңыз Келесі жалғастыру
  6. басыңыз орнату орнатуды бастау үшін
  7. Орнатудың аяқталуын күтіңіз
  8. басыңыз Аяқтау

7.3 Журнал файлдарын PAL көмегімен өңдеу

PAL арқылы өнімділік мониторы журналдарын талдаңыз:

  1. PAL бағдарламасын Бастау мәзірінен немесе орнату каталогынан іске қосыңыз
  2. басыңыз Есептегіш журнал қойындысы
  3. басыңыз Browse .blg файлын таңдау үшін
  4. Өнімділік мониторының журнал файлына өтіңіз
  5. басыңыз ашық
  6. басыңыз Шекті файл қойындысы
  7. Ашылмалы тізімнен шекті файлды таңдаңыз (мысалы, «SQL Server 2016 »)
  8. басыңыз сұрақтар қойындысы
  9. Жүйе конфигурациясы туралы сұрақтарға жауап беріңіз
  10. Сіздің SQL Server OLTP немесе деректер қоймасы
  11. Қол жетімді жалпы жедел жадты енгізіңіз
  12. басыңыз Шығыс опциялары қойындысы
  13. HTML есебі үшін шығыс каталогын таңдаңыз
  14. тексеру HTML шығару пішімі
  15. басыңыз Орындау қойындысы
  16. Таңдауларыңызды қарап шығыңыз
  17. тексеру Қазір орындауды бастаңыз
  18. басыңыз Аяқтау

7.4 PAL есептерін талдау

PAL талдауды аяқтағаннан кейін ол мыналарды қамтитын HTML есебін жасайды:

  • Өнімділік мәселелерінің қысқаша мазмұны
  • Диаграммалармен егжей-тегжейлі есептегіш талдау
  • Түспен белгіленген шекті бұзушылықтар
  • Әрбір мәселе бойынша нақты ұсыныстар
  • Тарихи үрдістер мен заңдылықтар

Есеп ауырлықты көрсету үшін түсті кодтауды пайдаланады: маңызды мәселелер үшін қызыл, ескертулер үшін сары және сау көрсеткіштер үшін жасыл. Өнімділік кедергілерін түсіну үшін әр бөлімді қарап шығыңыз және оңтайландыру бойынша PAL ұсыныстарын орындаңыз.

8. Балама SQL Server Бақылау құралдары

8.1 Кірістірілген SQL Server Құралдар

8.1.1 SQL Server Әрекет мониторингі

SQL Server Әрекет мониторингі туралы нақты уақыттағы ақпаратты көрсетеді SQL Server процестер мен өнімділік:

  1. ашық SQL Server Management Studio (SSMS) және сервер данасына қосылыңыз
  2. Object Explorer ішіндегі сервер атауын тінтуірдің оң жақ түймешігімен басыңыз
  3. таңдау Әрекет мониторингі
    Белсенділік мониторын іске қосыңыз SQL Server Менеджмент студиясы.

Әрекет мониторы процестерді, ресурс күтулерін, деректер файлын енгізу/шығару және соңғы қымбат сұрауларды көрсетеді. Ол ағымдағы дерекқор әрекетіне жылдам түсінік береді, бірақ тарихи деректерді сақтамайды.

Белсенділік мониторы SQL Server

8.1.2 SQL Server Өнімділікті бақылау тақтасы

SQL Server Management Studio кірістірілген өнімділік есептерін қамтиды:

  1. In SQL Server Management Studio (SSMS), тінтуірдің оң жақ түймешігімен басыңыз SQL Server дананы Object Explorer ішіндегі
  2. таңдау Есептер -> Стандартты есептер
  3. сияқты қолжетімді есептерден таңдаңыз Өнімділікті бақылау тақтасы
    Өнімділік бақылау тақтасын ашыңыз SQL Server Менеджмент студиясы.

Өнімділік бақылау тақтасы көрнекі түсініктерді береді SQL Server дананың өнімділігі, соның ішінде жүйелік процессорды пайдалану, ағымдағы күту сұраулары және өнімділік көрсеткіштері. Оған Стандартты есептер мәзірі арқылы қол жеткізіңіз.

Өнімділік бақылау тақтасы SQL Server Менеджмент студиясы

8.1.3 SQL Server Профессор

SQL Server Профессор түсіріп, талдайды SQL Server сұрауды орындау, транзакция операциялары және кіру әрекеттері сияқты оқиғалар.

Бастау SQL Server Профиль жасаушы:

  1. In SQL Server Management Studio түймесін басыңыз Құралдар -> SQL Server Профессор
    бастау SQL Server Профиль жасаушы SQL Server Менеджмент студиясы.

Профильдеуші айтарлықтай өнімділік шығындарын тудырады, сондықтан оны ақылмен және шыңнан тыс уақытта пайдаланыңыз. Көптеген сценарийлер үшін Кеңейтілген оқиғалар аз әсер ете отырып, жақсырақ өнімділікті қамтамасыз етеді.

SQL Server Профессор

8.1.4 Кеңейтілген оқиғалар

Кеңейтілген іс-шаралар кіріктірілген жеңіл өнімділікті бақылау жүйесі болып табылады SQL Server. Ол ауыстырады SQL Server Жақсырақ өнімділігі бар профиль жасаушы.

Негізгі мүмкіндіктер:

  • Нақты оқиғаларды мұқият бақылау
  • Ең аз өнімділік әсері
  • Реттелетін оқиға сеанстары
  • SSMS және басқа құралдармен интеграция
  • Күрделі сүзгілеу мен біріктіруді қолдау

SSMS арқылы кеңейтілген оқиға сеанстарын жасаңыз:

  1. In Object Explorer, серверіңізді кеңейтіп, өтіңіз Басқару -> Кеңейтілген оқиғалар -> Сеанстар
  2. Тінтуірдің оң жағын басыңыз Отырыстар және таңдаңыз Жаңа сеанс шебері
    Кеңейтілген іс-шаралардың жаңа сессиясын бастаңыз SQL Server Менеджмент студиясы.
  3. Жаңа сеансты бастау үшін нұсқауларды орындаңыз.

8.1.5 Динамикалық басқару көріністері (DMVs)

DMVs денсаулықты бақылау, ақауларды диагностикалау және баптау өнімділігі үшін сервер күйінің егжей-тегжейлі ақпаратын көрсетеді. Негізгі 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 мониторы

Redgate SQL Monitor мониторингке маманданған SQL Server және Azure SQL дерекқор орталары. Ол бүкіл жылжымайтын мүлік мониторингін, теңшелетін ескертулер мен бақылау тақталарын, егжей-тегжейлі есеп беру мүмкіндіктерін және басқа Redgate құралдарымен интеграцияны қамтамасыз етеді.

Redgate SQL Server монитор

SolarWinds SQL Server Бақылау құралы

SolarWinds SQL Server Мониторинг құралы, сонымен қатар SQL Sentry деп те белгілі, маңызды өнімділік мәселелерін диагностикалауға, шешуге және алдын алуға арналған. SQL Server.

SolarWinds SQL Server Бақылау құралы

IDERA SQL Server Өнімділікті бақылау құралы

IDERA SQL диагностикалық менеджері - қуатты бағдарлама SQL Server өнімділікті проактивті бақылауға, диагностикалауға және реттеуге көмектесуге арналған өнімділікті бақылау құралы.

IDERA SQL Server Өнімділікті бақылау құралы

Қолданбалар менеджерінің SQL мониторингі

Бағдарламалар менеджері Microsoft ұсынады SQL Server Пайдалы АТ шешімдерін қамтамасыз ететін бақылау құралы. Ол бір уақытта қателерді анықтау және ұйымның жұмысын тоқтатуға әкелуі мүмкін мәселелерді шешу кезінде SQL дерекқорларының өнімділігін қадағалауға арналған.

Қолданбалар менеджерінің SQL мониторингі

8.3 Ашық бастапқы кодты бақылау құралдары

DBA Dash

DBA Dash - бұл ақпарат беретін тегін, ашық бастапқы бақылау құралы SQL Server денсаулық, өнімділік және белсенділік. Бұл әсіресе шағын және орта өлшемді орталар үшін пайдалы және күнделікті DBA тексерулерін, өнімділікті бақылауды және конфигурацияны бақылауды қамтиды.

SQLWATCH

SQLWATCH орталықтандырылмаған, нақты уақыт режимінде ұсынады SQL Server жұмыс жүктемесінің жоғарылауын түсіру үшін 5 секундтық түйіршікті бақылау. Ол нақты уақыттағы бақылау тақталары үшін Grafana және терең талдау үшін Power BI қолдайды. Құрал кең конфигурация опцияларын, нөлдік техникалық қызмет көрсету талаптарын және шектеусіз масштабтауды қамтамасыз етеді.

Бақылаушы

Stack Exchange әзірлеген Opserver бірнеше жүйені бақылайды, соның ішінде SQL Server, Redis және Elasticsearch. Ол сіздің инфрақұрылымыңыз бойынша процессор, жад, желі және аппараттық құрал статистикасы үшін «барлық серверлер» көрінісін береді.

sp_WhoIsActive

sp_WhoIsActive - бұл Adam Machanic жасаған жан-жақты әрекетті бақылау процедурасы. Ол барлығымен жұмыс істейді SQL Server 2005 жылдан бастап ағымдағы шығарылымдар арқылы және кеңінен қолданылады SQL Server Нақты уақыттағы белсенділікті бақылауға арналған DBA.

sp_WhoIsActive пайдалану үшін оны http://whoisactive.com/ сайтынан жүктеп алып, дерекқорыңызға орнатыңыз және орындаңыз:

EXEC sp_WhoIsActive

Процедура ағымдағы орындалатын сұрауларды, күту ақпаратын, блоктау мәліметтерін және ресурстарды тұтынуды көрсетеді.

9. Үздік тәжірибелер SQL Server Өнімділік мониторы

9.1 Өнімділіктің негізгі көрсеткіштерін орнату

Өнімділіктің негізгі көрсеткіштері сіздің жұмысыңыз үшін қалыпты жұмыс параметрлерін белгілейді SQL Server орта. Негізгі көрсеткіштерсіз ағымдағы көрсеткіштер ақауларды немесе әдеттегі әрекетті көрсететінін анықтай алмайсыз.

Негізгі сызықтарды жасау:

  1. Кемінде бір апта бойы қалыпты жұмыс кезінде өнімділік деректерін жинау
  2. Ең жоғары және жоғары емес сағаттарда көрсеткіштерді түсіру
  3. Негізгі есептегіштер үшін типтік мәндерді құжаттау
  4. Қажет болған жағдайда маусымдық өзгерістерді тіркеу
  5. Болашақ көрсеткіштермен салыстыру үшін бастапқы деректерді сақтау

Негізгі көрсеткіштерді тоқсан сайын немесе маңызды инфрақұрылымдық өзгерістерден, қолданба жаңартуларынан немесе дерекқор модификацияларынан кейін жаңартыңыз.

9.2 Ескертудің тиісті шектерін орнату

Мәнді ескертулер алу үшін интеллектуалды шектерді конфигурациялаңыз:

  • Жад береді күтуде > 0 жад қысымын көрсетеді
  • Процессор кезегінің ұзындығы бір ядроға > 2 болса, процессордың кедергісі бар
  • Disk sec/Read or Write > 20ms енгізу/шығару баяу екенін көрсетеді
  • Блокталған процестер > 5 дау мәселелерін көрсетеді
  • Беттің қызмет ету мерзімі < 300 секунд жад қысымын көрсетеді

Негізгі деректерге және арнайы жұмыс жүктемесінің сипаттамаларына негізделген шектерді реттеңіз. Ортаңыздағы қалыпты өзгерістерді есепке алатын бейімделу шегін пайдаланыңыз.

9.3 Деректерді тұрақты шолу және талдау

Трендтер мен туындайтын мәселелерді анықтау үшін өнімділікті тұрақты шолуларды жоспарлаңыз:

  • Күнделікті: жоғары деңгейлі көрсеткіштерді және соңғы ескертулерді қарап шығыңыз
  • Апта сайын: өнімділік тенденцияларына терең талдау жасаңыз
  • Ай сайын: жан-жақты есептерді жасаңыз және негізгі көрсеткіштермен салыстырыңыз
  • Тоқсан сайын: қуаттылықты жоспарлауды және ұзақ мерзімді трендтерді қарастырыңыз

Табылған мәліметтерді құжаттаңыз және уақыт өте келе өнімділікті жақсартуды қадағалаңыз.

9.4 Бақылау бойынша үстеме шығындарды теңестіру

Бақылаудың өзі ресурстарды тұтынады, сондықтан деректерді жинау өнімділік әсерімен теңестіреді:

  • Үздіксіз бақылау үшін 30-60 секунд аралығын пайдаланыңыз
  • Белсенді ақауларды жою үшін ғана 15 секундтық аралықтарды пайдаланыңыз
  • Деректер жинағышты шектеу Шамадан тыс деректерді болдырмау үшін ұзақтығын орнатыңыз
  • Журналдарды дерекқор файлдарынан бөлек дискілерде сақтаңыз
  • Басқарылатын файл өлшемдерін сақтау үшін ескі өнімділік деректерін мұрағаттау

Өнімділік мониторы дұрыс конфигурацияланған кезде ең аз үстеме шығындарды қосады, әдетте жүйе ресурстарының 2%-дан аз.

9.5 Деректерді ұзақ мерзімді сақтау

Мәнді трендті талдау және мүмкіндіктерді жоспарлау үшін өнімділік деректерін сақтаңыз:

  • Кем дегенде 1-2 жыл өнімділік деректерін сақтаңыз
  • Мұрағат деректерін 3-6 айдан кейін бөлек сақтау үшін
  • Кеңістікті сақтау үшін ескі журнал файлдарын қысыңыз
  • Өнімділікке әсер ететін кез келген маңызды оқиғаларды немесе өзгерістерді құжаттаңыз

Өнімділік есептегіш деректерінің салыстырмалы түрде шағын өлшемін ескере отырып, оны шексіз сақтау жиі орындалады және ұзақ мерзімді талдау үшін құнды.

9.6 DevOps тәжірибелерімен біріктіру

Дерекқор өнімділігін бақылауды CI/CD конвейерлеріне енгізу:

  • Орналастыруды тексеруде дерекқор өнімділігі көрсеткіштерін қосыңыз
  • Жаңа шығарылымдар үшін өнімділікті тексеруді автоматтандырыңыз
  • Код өзгерістері өнімділікке теріс әсер етпейтінін растаңыз
  • Әрбір шығарылым үшін өнімділік көрсеткіштерін жасаңыз
  • Мониторинг ескертулерін оқиғаларды басқару жүйелерімен біріктіру

10. Жалпы өнімділік мәселелерін жою

10.1 CPU кедергілерін анықтау

Процессордың кедергілері сұрауға жауап беру уақытының баяулауы және процессордың жоғары пайдалануы ретінде көрінеді. CPU ақауларын диагностикалау үшін мына қадамдарды пайдаланыңыз:

  1. Процессордың кезек ұзындығы есептегішін тексеріңіз. Әр ядроға 2-ден жоғары мәндер процессордың қысымын көрсетеді
  2. Қарап шығу % Процессор уақыты. 75%-дан асатын тұрақты мәндер процессордың кедергісін көрсетеді
  3. Қашықтағы жұмыс үстелінен SQL Server
  4. Тапсырмалар реттеушісін ашу (Ctrl+Shift+Esc)
  5. басыңыз Процестер қойындысы
  6. тексеру Барлық пайдаланушылардың процестерін көрсету
  7. басыңыз Орталық Есептеуіш Бөлім CPU пайдалануы бойынша сұрыптау үшін баған тақырыбы
  8. CPU ресурстарын тұтынатын процестерді анықтаңыз

болмасаSQL Server қолданбалар маңызды процессорды тұтынады, оларды дерекқор серверінен жойыңыз. Егер sqlservr.exe жоғары процессорды пайдаланса, мына әдістерді пайдаланып зерттеңіз:

  • SQL Compilations/sec және SQL Re-Compiations/sc тексеріңіз. Пакеттік сұраулардың 10%/сек жоғары мәндері шамадан тыс жинақтауды көрсетеді
  • Процессорды көп қажет ететін сұрауларды анықтау үшін sys.dm_exec_query_stats сұрауы
  • Жетіспейтін индекстер немесе тиімсіз операциялар үшін орындау жоспарларын қарап шығыңыз
  • Кестені сканерлеуді азайту үшін индекстерді қосуды қарастырыңыз

10.2 Жад ақауларын диагностикалау

Жад мәселелері айтарлықтай әсер етеді SQL Server өнімділік. Мына көрсеткіштерді пайдаланып жад ақауларын диагностикалаңыз:

Қолжетімді жад тамшылары

Егер қолжетімді Мбайттар үнемі 100 МБ-тан төмен түссе, операциялық жүйе жадтың жетіспеушілігіне тап болады. Windows беттерін өшіруі мүмкін. SQL Server жадты дискіге ауыстырып, өнімділіктің төмендеуіне әкеледі.

Төмен беттің қызмет ету мерзімі

300 секундтан төмен беттің қызмет ету мерзімі буфер кэшінің жоғары айналымын көрсетеді. Бұл жадтың жеткіліксіз бөлінуін немесе сұраулардың шамадан тыс жад қысымын көрсетеді.

Төмен буфер кэшінің соққы коэффициенті

Буфер кэшінің соққы коэффициенті 99% төмен дегенді білдіреді SQL Server деректерді жадтан емес, дискіден жиі оқиды. Бұл буферлік пул тым кішкентай немесе болғанда орын алады SQL Server қайта іске қосқаннан кейін де қызып тұр.

Жад гранттары күтілуде

Күтудегі жад гранттары үшін 0-ден жоғары кез келген мән сұраулардың жад гранттарын күтіп тұрғанын көрсетеді. Бұл жедел назар аударуды қажет ететін маңызды жад жетіспеушілігін білдіреді.

Жад мәселелерін шешу үшін:

  1. конфигурациялау SQL Server операциялық жүйеге сәйкес ЖЖҚ қалдыру үшін максималды жад параметрі (әдетте сервер өлшеміне байланысты 4-8 ГБ)
  2. үшін «Жадтағы беттерді құлыптау» рұқсатын қосыңыз SQL Server қызмет шоты
  3. Жад қысымы сақталса, серверге қосымша физикалық жедел жад қосыңыз
  4. Жадты көп қажет ететін сұрауларды анықтау және оңтайландыру

10.3 Дискінің енгізу/шығару мәселелерін шешу

Дискіні енгізу/шығару жиі дерекқор жүйелеріндегі негізгі өнімділік кедергісіне айналады. Мына әдістерді пайдаланып диск ақауларын диагностикалаңыз:

Жоғары диск кезегінің ұзындығы

Диск кезегі ұзындығы 2-ден жоғары (немесе RAID үшін 2-ден) дискінің ішкі жүйесі енгізу/шығару сұрауларына жауап бере алмайтынын көрсетеді. Бұл күтудегі әрекеттердің артта қалуын жасайды.

Дискінің шамадан тыс кідірісі

Орт. Диск сек/оқу және орт. Disk sec/Write мәндері 10-20 мс жоғары диск реакциясын көрсетеді. Транзакциялар журналының дискілері әсіресе жылдам өнімділікті талап етеді, ең дұрысы жазу үшін 5 мс-ден аз.

Диск уақыты жоғары %

Диск уақытының 85%-дан жоғары тұрақты пайызы дискінің қанығуын көрсетеді. Диск уақытының көп бөлігін енгізу/шығару сұраныстарын өңдеуге жұмсайды, бос орын аз қалады.

Диск мәселелерін шешпес бұрын, олардың жад ақауларының белгілері емес екенін тексеріңіз. Есте сақтау күштерінің жеткіліксіздігі SQL Server диск көрсеткіштерін жасанды түрде толтыра отырып, дискіден қосымша деректерді оқу.

Шынайы дискінің енгізу/шығару мәселелерін шешу үшін:

  • Жылдамырақ дискілерге жаңартыңыз (HDD орнына SSD дискілері)
  • Жақсырақ жұмыс істеу үшін RAID конфигурацияларын енгізіңіз
  • Дерекқор файлдарын, транзакция журналдарын және tempdb файлын әртүрлі физикалық дискілерге бөліңіз
  • Дискіні оқуды азайту үшін қосымша жад қосыңыз
  • Қажетсіз енгізу/шығаруды азайту үшін индекстерді оңтайландырыңыз
  • Нашар орындалатын сұрауларды қарап шығыңыз және оңтайландырыңыз

10.4 Бұғаттау және тұйықтауларды шешу

Бір сеанс басқа сеанстарды жалғастыруға кедергі келтіретін құлыптарды ұстаған кезде бұғаттау орын алады. Бұғаттау мәселелерін анықтау үшін мына есептегіштерді бақылаңыз:

  • Бұғатталған процестер: Ең дұрысы 0 болуы керек
  • Күту/сек құлыптау: Күтуді қажет ететін құлыптау сұрауларының саны
  • Орташа күту уақыты: Құлыптауды күтудің орташа ұзақтығы

Блоктауды зерттеу үшін:

  1. SSMS ішінде Әрекет мониторын ашыңыз
  2. кеңейту Процестер бөлім
  3. Нөлден басқа процестерді іздеңіз Бұғаттаған құндылықтар
  4. Блоктау сеансының идентификаторын анықтаңыз
  5. Блоктауды тудыратын сұрауларды қарап шығыңыз

Толығырақ блоктауды талдау үшін sp_WhoIsActive пайдаланыңыз. Шамадан тыс wait_info жазбалары жиі tempdb қайшылығын немесе блоктау мәселелерін көрсетеді.

Блоктауды азайту үшін:

  • Транзакция ұзақтығын азайтыңыз
  • Сәйкес оқшаулау деңгейлерін пайдаланыңыз
  • Құлыптау ұзақтығын азайту үшін индекстерді қосыңыз
  • READ_COMMITTED_SNAPSHOT оқшаулауын қарастырыңыз
  • Ұзақ орындалатын сұрауларды қарап шығыңыз және оңтайландырыңыз

10.5 Сұрау өнімділігі мәселелері

Қымбат сұраныстарды анықтау SQL өнімділігін бақылау үшін өте маңызды. Проблемалық сұрауларды табу үшін мына әдістерді пайдаланыңыз:

Әрекет мониторын пайдалану

  1. SSMS жүйесінде сервер атауын тінтуірдің оң жақ түймешігімен басыңыз
  2. таңдау Әрекет мониторингі
  3. кеңейту Соңғы қымбат сұраулар
  4. Жоғары CPU, ұзақтығы немесе логикалық оқулары бар сұрауларды қарап шығыңыз

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. Кесте сканерлеуін, индекс сканерлеуін немесе қымбат операцияларды іздеңіз

Сұрауларды оңтайландыру:

  • Сәйкес индекстерді қосу
  • Қымбат операцияларды болдырмау үшін сұрауларды қайта жазу
  • Статистиканы жаңарту
  • SELECT * орнына арнайы баған атауларын пайдалану
  • Қажетсіз DISTINCT немесе ORDER BY сөйлемдерін болдырмау

10.6 Бүлінген дерекқорды анықтау және түзету

Дерекқордың бүлінуі өнімділіктің төмендеуіне, деректердің жоғалуына және жүйе ақауларына әкелуі мүмкін. Сыбайлас жемқорлықты тез анықтау және жою дерекқорды сақтау үшін өте маңызды.

Мәліметтер қорының сыбайлас жемқорлық көрсеткіштері

Ықтимал сыбайлас жемқорлық белгілеріне назар аударыңыз:

  • Қате туралы хабарлар SQL Server қателер журналы (қате 823, 824 немесе 825)
  • Арнайы кестелерге қатынасу кезінде күтпеген қолданба қателері
  • Бұрынғы жылдам сұраулардағы баяу сұрау өнімділігі
  • SQL Server апаттар немесе күтпеген қайта іске қосулар
  • 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 Сұраулар қоймасының мониторингі

Query Store, енгізілген SQL Server 2016, сұрау өнімділігі деректерін автоматты түрде түсіреді. Ол сұрау тәртібі, орындау жоспарлары және өнімділік үрдістері туралы құнды түсініктерді береді.

Сұраулар дүкенін қосу

  1. SSMS Object Explorer бағдарламасында дерекқорды тінтуірдің оң жақ түймешігімен басыңыз
  2. таңдау Сипаттар
  3. басыңыз Сұраулар дүкені бет
  4. In Жұмыс режимі (сұралған)таңдаңыз Оқу Жазу
  5. Қажет болса, қосымша параметрлерді конфигурациялаңыз
  6. басыңыз OK

Сұрау өнімділігін бақылау

Object Explorer арқылы сұрау дүкенінің есептеріне қол жеткізіңіз:

  1. Object Explorer бағдарламасында дерекқорды кеңейтіңіз
  2. кеңейту Сұраулар дүкені
  3. Қолжетімді есептерден таңдаңыз:
    • Регрессиялық сұраулар
    • Жалпы ресурстарды тұтыну
    • Ең көп ресурсты тұтынатын сұраулар
    • Мәжбүрлі жоспарлары бар сұраулар
    • Бақыланатын сұраулар

Регрессияны анықтау жоспары

Сұрау қоймасы сұрауды орындау жоспарлары өзгерген кезде және өнімділік төмендеген кезде автоматты түрде анықтайды. Жоспар өзгерістері әсер еткен сұрауларды анықтау үшін Регрессиялық сұраулар есебін қарап шығыңыз.

Мәжбүрлі жоспарды басқару

Сұраныс дүкені жақсырақ орындау жоспарын анықтағанда, мәжбүрлейді 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 ROBUILD пайдаланыңыз
  • Фрагментация < 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 мониторының интеграциясы

Azure Monitor Azure SQL дерекқорынан көрсеткіштерді автоматты түрде жинайды, соның ішінде:

  • DTU немесе vCore пайдалану
  • Сақтау пайдалану
  • Қосылу статистикасы
  • Тұйықталулар мен күту уақыты

Бұл көрсеткіштерге Azure Portal немесе Azure Monitor API арқылы қол жеткізіңіз.

Кірістірілген бақылау мүмкіндіктері

Azure SQL дерекқоры мыналарды қамтиды:

  • Автоматты баптау бойынша ұсыныстар
  • Сұрау өнімділігі туралы түсінік
  • Аномалияны анықтауға арналған Intelligent Insights
  • Кіріктірілген дабыл және диагностика

Сұрау өнімділігі туралы түсінік

Бұл мүмкіндік ең көп ресурсты тұтынатын сұраулардың көрнекілігін, сұрау ұзақтығын талдауды және өнімділіктің тарихи үрдістерін қамтамасыз етеді. Оған SQL дерекқор ресурсының астындағы Azure порталы арқылы қол жеткізіңіз.

12.2 Бұлтты жергілікті бақылау құралдары

Бұлтты платформалар өз орталары үшін оңтайландырылған жергілікті бақылау шешімдерін ұсынады:

  • Azure SQL дерекқорына арналған Azure мониторы және қолданба туралы түсініктер
  • RDS үшін AWS CloudWatch SQL Server
  • Бұлтқа арналған Google бұлтты мониторингі SQL Server

Бұл құралдар бұлттық инфрақұрылыммен үздіксіз интеграцияланады және барлық бұлттық ресурстарда бірыңғай мониторингті қамтамасыз етеді.

Гибридті орта мониторингі

Жергілікті және бұлтты қамтитын гибридті орналастырулар үшін Redgate SQL Monitor, SolarWinds DPA сияқты екі ортаны да қолдайтын құралдарды немесе орталықтандырылған деректер жинауды пайдаланатын реттелетін шешімдерді пайдаланыңыз.

12.3 Бұлттағы өнімділік айырмашылықтары

бұлт SQL Server ортаның өзіндік ерекшеліктері бар:

Ресурстарды бөлу үлгілері

Бұлттық провайдерлер өнімділік көрсеткіштерін түсіндіру жолына әсер ететін әртүрлі ресурстарды бөлу әдістерін (DTU, vCore, серверсіз) пайдаланады. Қызмет деңгейіңіздің шектеулері мен сипаттамаларын түсініңіз.

Масштабтауды қарастыру

Бұлтты орталар динамикалық масштабтау мүмкіндіктерін ұсынады. Масштабты қашан ұлғайту немесе азайту керектігін анықтау үшін ресурстарды пайдалануды бақылаңыз. Көптеген бұлттық платформалар өнімділік шектеріне негізделген автоматты масштабтауды қамтамасыз етеді.

13. Өнімділік мониторингін автоматтандыру

13.1 SQL Server Агент жұмысы

көмегімен деректерді жинауды автоматтандыру SQL Server Қолмен араласусыз тұрақты бақылау үшін агент тапсырмалары.

Жоспарланған деректер жинау

  1. SSMS ішінде кеңейтіңіз SQL Server агент
  2. Тінтуірдің оң жағын басыңыз Бос тармағын таңдаңыз және жаңа Job
  3. Тапсырманы атаңыз (мысалы, «Өнімділік көрсеткіштерін жинау»)
  4. басыңыз қадамдары және жаңа қадам қосыңыз
  5. Type параметрін орнатыңыз 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 интеграциясы

  1. Power BI өнімділік деректер кестелеріне қосыңыз
  2. Негізгі көрсеткіштер үшін көрнекіліктер жасаңыз
  3. Уақыт ауқымы мен серверді таңдау үшін шектегіштерді қосыңыз
  4. Бақылау тақталарын Power BI қызметіне жариялаңыз
  5. Автоматты жаңарту кестелерін конфигурациялаңыз

Нақты уақытта бақылау тақтасын жасау

DMV және өнімділік есептегіштерін тікелей сұрайтын нақты уақыттағы бақылау тақталарын жасау үшін Grafana немесе пайдаланушы веб қолданбалары сияқты құралдарды пайдаланыңыз.

Тарихи тренд визуализациясы

Уақыт бойынша трендтерді көрсететін сызықтық диаграммаларды құрастырыңыз:

  • CPU пайдалану
  • Жадты пайдалану
  • Дискіні енгізу/шығару
  • Сұрау өнімділігі
  • Қосылымдар есептеледі

14. Жағдайлар мен тәжірибелік мысалдар

14.1 Жад қысымын шешу

Симптомды анықтау

Өндіріс SQL Server ең жоғары сағаттарда сұрауға жауап беру уақыты баяу болды. Пайдаланушылар қолданбаның күту уақыты мен өнімділіктің төмендеуіне шағымданды.

Қарсы талдау

Өнімділік мониторының деректері анықталды:

  • Беттің қызмет ету мерзімі 50 секундқа дейін төмендеді (қалыпты: >300)
  • Буфер кэшінің соққы коэффициенті 85%-ға төмендеді (қалыпты: >99%)
  • Күтудегі жад гранттары жиі 5-10 мәндерін көрсетті
  • Физикалық дискінің оқуы/сек айтарлықтай өсті

Шешім қадамдары

  1. Тексерілді SQL Server максималды жад параметрі – оның әдепкіге орнатылғаны анықталды (шексіз)
  2. Жалпы сервер жады мен мақсатты сервер жадысын қарастырды – айтарлықтай айырмашылық көрсетті
  3. Операциялық жүйе үшін 8 ГБ қалдыру үшін конфигурацияланған максималды сервер жады
  4. үшін «Жадтағы беттерді құлыптау» рұқсаты қосылған SQL Server қызмет шоты
  5. Серверге 32 ГБ қосымша жедел жады қосылды
  6. Бір апта бойы бақыланатын өнімділік – Беттің күтілу мерзімі 500 секундтан жоғары тұрақтанды

Нәтиже: Сұрауларға жауап беру уақыты 60%-ға жақсарды, пайдаланушы шағымдары тоқтатылды және қолданба өнімділігі қалыпты жағдайға оралды.

14.2 Жағдайды зерттеу: CPU өнімділігін оңтайландыру

Симптомды анықтау

A SQL Server Жұмыс уақытында процессорды 90%-дан жоғары пайдалануды дәйекті түрде көрсетті, бұл қолданба өнімділігінің баяулауын және пайдаланушының көңілін қалдырады.

Қарсы талдау

Өнімділік мониторингі анықталды:

  • % Процессор уақыты орташа 92%, жиі 100% көтеріледі
  • Процессор кезегінің ұзындығы 4-тен жоғары (серверде 8 ядро ​​болды)
  • SQL жинақтары/сек пакеттік сұраныстардың 25%-ын құрады (<10% болуы керек)
  • SQL қайта құрастырулары/сек Пакеттік сұраулардың 15%-ын құрады

Шешім қадамдары

  1. Ең көп CPU тұтынатын сұрауларды анықтау үшін DMV пайдаланылды
  2. Анықталған сұраулар бойынша орындалу жоспарлары талданды
  3. Жетіспейтін индекстерге байланысты үлкен кестелерде бірнеше кесте сканерлері табылды
  4. Орындау жоспарының ұсыныстары негізінде сәйкес индекстер жасалды
  5. Шамадан тыс компиляцияларды тудыратын анықталған динамикалық SQL
  6. Параметрленген сұрауларды пайдалану үшін өзгертілген қолданба коды
  7. Проблемалық сақталатын процедуралар үшін орындалған жоспар нұсқаулығы
  8. Көп қолданылатын кестелер бойынша жаңартылған статистика

Нәтиже: Жұмыс уақытында процессорды пайдалану орташа есеппен 45%-ға дейін төмендеді. Сұрауды орындау уақыты 70%-ға жақсарды. Қолданбаның жауап беру қабілеті айтарлықтай жақсарды.

14.3 Жағдайларды зерттеу: Дискінің енгізу/шығару ақауларын шешу

Симптомды анықтау

Пайдаланушылар деректерді жүктеу операциялары және кешкі пакеттік өңдеу кезінде қолданбаның өте баяу жауап бергенін хабарлады.

Қарсы талдау

Өнімділік деректері мыналарды көрсетті:

  • Орт. Транзакция журналының дискісінде диск сек/Жазу 45 мс-тен асты
  • Деректер файлы дискісінде диск кезегінің ұзындығы орташа есеппен 12 болды
  • % Диск уақыты пакеттік тапсырмалар кезінде сағат бойы 95%-дан жоғары болды
  • Бет жазу/сек өте жоғары болды

Шешім қадамдары

  1. Тексерілген жад параметрлері сәйкес болды – жад мәселесі табылмады
  2. Талданған диск конфигурациясы – бір шпиндель жинағындағы барлық файлдар табылды
  3. Арнайы жылдам SSD дискілеріне бөлінген транзакция журналдары
  4. SSD дискілерін бөлектеу үшін tempdb жылжытылды
  5. Бірнеше tempdb деректер файлдары енгізілді (әр ядроға бір)
  6. RAID 10 SSD конфигурациясына жаңартылған деректер файлы дискілері
  7. Шағын транзакция топтамаларын пайдалану үшін оңтайландырылған пакеттік тапсырмалар
  8. Пакеттік әрекеттер кезінде кестені қажетсіз сканерлеуді азайту үшін индекстер қосылды

Нәтиже: Орт. Диск сек/Жазу 3 мс дейін төмендеді. Диск кезегі ұзындығы орташа есеппен 1-ден төмен. Пакеттік тапсырманы орындау уақыты 75%-ға қысқарды.

15. Болашақ трендтер SQL Server мониторинг

15.1 AI және Machine Learning интеграциясы

Жасанды интеллект пен машиналық оқыту өзгеруде SQL Server өнімділік мониторы.

Болжамдық талдау

Машиналық оқыту үлгілері тарихи деректерге негізделген болашақ ресурстар қажеттілігін болжайды. Бұл жүйелер болжауы мүмкін:

  • Сақтау сыйымдылығы таусылған кезде
  • Күтілетін процессор мен жад талаптары ең жоғары кезеңдерде
  • Пайдаланушыларға әсер етпес бұрын өнімділіктің төмендеуін сұраңыз
  • Техникалық қызмет көрсету операциялары үшін оңтайлы уақыт

Аномалияны анықтау

AI басқаратын құралдар өнімділік көрсеткіштеріндегі әдеттен тыс үлгілерді автоматты түрде анықтайды. Олар адам әкімшілері жіберіп алуы мүмкін ауытқуларды анықтайды және қалыпты вариациялар мен шынайы мәселелерді ажыратады.

Автоматтандырылған қалпына келтіру

Өзін-өзі емдеу жүйелері анықталған кезде жалпы мәселелерді автоматты түрде шешеді:

  • Тоқтатылған қызметтерді қайта іске қосыңыз
  • Ең жоғары жүктеме кезінде ресурстарды қайта бөліңіз
  • Белгілі мәселелер үшін түзетулерді қолданыңыз
  • Бөлінген индекстерді автоматты түрде қалпына келтіріңіз

15.2 Бұлтқа негізделген бақылау эволюциясы

Бұлтты бақылау жаңа мүмкіндіктермен дамуын жалғастыруда.

Бірыңғай мониторинг платформалары

Заманауи платформалар бір шыны панельді көруді қамтамасыз етеді:

  • Жергілікті жерде SQL Server даналар
  • Бұлтта орналасқан дерекқорлар
  • Гибридті орталар
  • Қолданбаның өнімділігі
  • Инфрақұрылымдық көрсеткіштер

Бақылану үрдістері

Мониторингтен бақыланатындыққа ауысу мынаны көрсетеді:

  • Жүйе әрекетін шығыстардан түсіну
  • Көрсеткіштерді, журналдарды және жолдарды салыстыру
  • Бөлінген жүйелер туралы терең түсінік
  • Нақты уақыттағы ақаулық диагностикасы

15.3 Өзін-өзі сауықтыру деректер базасының жүйелері

Келешек SQL Server нұсқалары көбірек автономды мүмкіндіктерді қамтиды.

Автоматты оңтайландыру

Деректер базалары өзін-өзі оңтайландырады:

  • Жұмыс жүктемесіне негізделген индекстерді автоматты түрде жасау және тастау
  • Оңтайлы өнімділік үшін конфигурация параметрлерін реттеу
  • Тиімсіз сұрауларды ашық түрде қайта жазу
  • Ресурстарды бөлуді динамикалық басқару

Интеллектуалды баптау

Жетілдірілген жүйелер өнімділік үлгілерінен үйренеді және DBA қолмен араласу қажеттілігін азайта отырып, реттеу бойынша ұсыныстарды автоматты түрде қолданады.

16. Қорытынды және негізгі қорытындылар

16.1 Мониторингтің маңызды тәжірибелерінің қысқаша мазмұны

әсерлі SQL Server өнімділік мониторы құралдарды, әдістерді және озық тәжірибелерді біріктіретін кешенді тәсілді қажет етеді.

Сыни есептерді қорытындылау

Бақылау күштерін осы маңызды есептегіштерге бағыттаңыз:

  • Жад: беттің күтілетін қызмет мерзімі, буфер кэшінің соғу коэффициенті, күтудегі жад гранттары
  • CPU: % Процессор уақыты, процессор кезегі ұзындығы
  • Диск: орт. Диск сек/Оқу және жазу, Диск кезегі ұзындығы
  • SQL Server: Пакеттік сұраулар/сек, Компиляциялар/сек, Пайдаланушы қосылымдары

Үздік тәжірибенің қысқаша мазмұны

  • Қалыпты жұмыс кезінде бастапқы көрсеткіштерді орнатыңыз
  • Негізгі мәндерге негізделген ақылды ескерту шектерін орнатыңыз
  • Өнімділік деректерін жүйелі түрде қарап шығыңыз
  • Деректердің түйіршіктілігі арқылы теңгерімді бақылау
  • Тренд талдауы үшін ұзақ мерзімді деректерді сақтаңыз
  • Әрбір мониторинг сценарийі үшін сәйкес құралдарды пайдаланыңыз

16.2 Үздіксіз жетілдіру тәсілі

SQL Server өнімділікті бақылау бір реттік әрекет емес, үздіксіз жетілдіруді қажет ететін үздіксіз процесс.

Тұрақты шолу циклдері

  • Күнделікті: ескертулер мен ағымдағы өнімділікті тексеріңіз
  • Апта сайын: Трендтерді қарап шығыңыз және туындайтын мәселелерді анықтаңыз
  • Ай сайын: Ұзақ мерзімді үлгілер мен қуат қажеттіліктерін талдаңыз
  • Тоқсан сайын: базалық көрсеткіштерді жаңартып, мониторинг тиімділігін шолу

Құралдармен ағымдағы күйде болу

Бақылау құралдары мен әдістерін жаңартып отыру:

  • Жаңа бақылау мүмкіндіктерін бағалаңыз SQL Server жаңартулар
  • Жаңадан пайда болған үшінші тарап құралдарын сынақтан өткізіңіз
  • Тренингтер мен конференцияларға қатысыңыз
  • Қатысу SQL Server қауымдық форумдар
  • Топ мүшелерімен білімдерін бөлісу

16.3 Келесі қадамдар

Іске асыру SQL Server өнімділікті жүйелі түрде бақылау:

Іске асыру жол картасы

  1. Апта 1: Негізгі есептегіштермен өнімділік мониторын орнатыңыз
  2. Апта 2: Автоматтандырылған жинау үшін деректер жинағыш жиындарын жасаңыз
  3. Апта 3: Қалыпты жұмыс кезінде бастапқы көрсеткіштерді орнатыңыз
  4. Апта 4: Маңызды шектерге арналған ескертулерді конфигурациялаңыз
  5. 2 айы: Қосымша бақылау құралдарын енгізу (DMVs, Extended Events)
  6. 3 айы: Теңшелетін бақылау тақталары мен есептерді әзірлеу
  7. Ағымдағы: Тәжірибе мен өзгеретін талаптар негізінде мониторингті нақтылаңыз

Қосымша ресурстар

туралы білім алуды жалғастыру SQL Server Microsoft құжаттамасы, қауымдастық блогтары және практикалық тәжірибе арқылы өнімділікті бақылау. Ортаңыз үшін ең жақсы жұмыс істейтінін табу үшін әртүрлі құралдармен және әдістермен тәжірибе жасаңыз.

17. Жиі қойылатын сұрақтар (FAQ)

17.1 Ең маңыздылары қандай? SQL Server бақылау үшін өнімділік есептегіштері?

Ең сыни SQL Server өнімділік есептегіштері мыналарды қамтиды:

  • Жад: беттің күтілетін қызмет мерзімі (>300 секунд болуы керек) және буфер кэшінің соққы коэффициенті (>99% болуы керек)
  • CPU: % Процессор уақыты (тұрақты мәндер <75%) және процессор кезегі ұзындығы (әр ядроға <2 болуы керек)
  • Диск: орт. Диск сек/Оқу және жазу (<10-20 мс болуы керек) және Диск кезегінің ұзындығы (әр дискіге <2 болуы керек)
  • SQL Server: Пакеттік сұраулар/сек, SQL жинақтары/сек және күтудегі жад гранттары (0 болуы керек)

Бұл есептегіштер жүйенің денсаулығы туралы жан-жақты түсінік береді және кедергілерді жылдам анықтауға көмектеседі.

17.2 Өнімділік деректерін қаншалықты жиі жинауым керек?

Жинау жиілігі мониторинг мақсаттарыңызға байланысты:

  • Бастапқы мониторинг: әр 1 минут сайын (60 секунд)
  • Белсенді ақаулықтарды жою: қысқа мерзімдер үшін әрбір 15-30 секунд сайын
  • Ұзақ мерзімді тренд: әр 5 минут сайын

Жоғары жиілікті жинақты үздіксіз іске қосудан аулақ болыңыз, себебі ол өнімділікке әсер етуі және шамадан тыс деректерді жасауы мүмкін. Кәдімгі бақылау үшін ұзағырақ аралықтарды және нақты мәселелерді зерттегенде ғана қысқа аралықтарды пайдаланыңыз.

17.3 Өнімділік мониторының айырмашылығы неде SQL Server Профильші?

Өнімділік мониторы және SQL Server Профиль жасаушы әртүрлі мақсаттарға қызмет етеді:

Өнімділік мониторы:

  • Мониторлар жүйесі және SQL Server өнімділік есептегіштері
  • Ресурстарды пайдалануды бақылайды (CPU, жад, диск)
  • Төмен үстеме шығындар, үздіксіз бақылау үшін қолайлы
  • Уақыт бойынша жиынтық көрсеткіштерді береді

SQL Server Профиль жасаушы:

  • Жеке іздер SQL Server оқиғалар мен сұраулар
  • Сұрауды орындау туралы толық ақпаратты түсіреді
  • Үздіксіз пайдалану үшін ұсынылмайды
  • Арнайы сұрау мәселелерін шешу үшін ең жақсы
  • Кеңейтілген іс-шаралардың пайдасына ескірген

Жүйені жалпы бақылау үшін өнімділік мониторын және сұрау деңгейін егжей-тегжейлі талдау үшін кеңейтілген оқиғаларды (Profiler емес) пайдаланыңыз.

17.4 Can Performance Monitor әсері SQL Server өнімділігі?

Дұрыс конфигурацияланған кезде өнімділік мониторы аз әсер етеді SQL Server өнімділік, әдетте үстеме шығындар 2%-дан аз. Алайда шамадан тыс бақылау келесі мәселелерді тудыруы мүмкін:

  • Тым көп есептегіштер үстеме шығындарды арттырады
  • Өте қысқа үлгі аралықтары (15 секундтан аз) ресурстарды штаммдатады
  • Үздіксіз жоғары жиілікті жинақ үлкен журнал файлдарын жасайды

Әсерді азайту үшін:

  • Тек қажетті есептегіштерді бақылаңыз
  • Сәйкес үлгі аралықтарын пайдаланыңыз (жұмыстық бақылау үшін 60 секунд)
  • Журналдарды дерекқор файлдарынан бөлек дискілерде сақтаңыз
  • Ресурсты көп қажет ететін мониторингті белсенді емес сағаттарда жоспарлаңыз

17.5 Өнімділік мониторингі деректерін қанша уақыт бойы сақтауым керек?

Сақтау талдау қажеттіліктері мен сақтау сыйымдылығына байланысты:

  • Ең төменгі: Соңғы ақауларды жою үшін 3 ай
  • Ұсынылған: Қуатты жоспарлау және трендті талдау үшін 1-2 жыл
  • Оңтайлы: Уақыт өте келе тарихи деректер құндырақ бола түсетіндіктен, сақтау рұқсат етілсе, шексіз

Өнімділік есептегіш деректері жақсы қысылады және салыстырмалы түрде аз орын алады. Ескі деректерді жоюдың орнына бөлек сақтау үшін мұрағаттауды қарастырыңыз. Көптеген ұйымдар ұзақ мерзімді тенденцияларды анықтау және әлеуетті жоспарлау үшін тарихи деректердің баға жетпес екенін байқайды.

17.6 Негізгі өнімділік есептегіштері үшін жақсы шекті мәндер қандай?

Ескерту үшін ұсынылатын шекті мәндер:

  • Күтудегі жад гранттары: > 0 болғанда ескерту
  • Беттің қызмет ету мерзімі: < 300 секунд болғанда ескерту
  • % Процессор уақыты: 5 минут ішінде > 80% болғанда ескерту
  • Процессор кезегінің ұзақтығы: әрбір ядроға > 2 болғанда ескерту
  • Орт. Диск сек/Оқу немесе жазу: > 20 мс болғанда ескерту
  • Диск кезегі ұзындығы: әр дискіге > 2 болғанда ескерту
  • Блокталған процестер: > 5 болғанда ескерту

Бұл шектерді бастапқы деректеріңізге және нақты жұмыс жүктемесінің сипаттамаларына негіздеңіз. Бір орта үшін қалыпты нәрсе басқа ортадағы ақауларды көрсетуі мүмкін.

17.7 Қалай бақылаймын SQL Server қашықтан өнімділік?

Қашықтан монитор SQL Server осы әдістерді қолданатын жағдайлар:

  1. Өнімділік мониторы: Есептегіштерді қосқанда қашықтағы компьютердің атын көрсетіңіз
  2. PowerShell: Get-Counter көмегімен -ComputerName параметрін пайдаланыңыз
  3. DMVs: SSMS және сұрау DMV арқылы қашықтағы серверлерге қосылыңыз
  4. Үшінші тарап құралдары: Көптеген бақылау құралдары серверді қашықтан бақылауды қолдайды

Брандмауэр ережелері өнімділік мониторының трафигіне рұқсат беретініне және қашықтағы серверде тиісті рұқсаттарыңыздың бар екеніне көз жеткізіңіз. Бірнеше серверлер үшін арнайы мониторинг сервері мен дерекқоры бар орталықтандырылған мониторингті енгізуді қарастырыңыз.

17.8 Ең жақсы тегін құрал не үшін SQL Server өнімділік мониторы?

Бақылау үшін бірнеше тамаша тегін құралдар бар SQL Server орындау:

  • Windows өнімділігі мониторы: Кірістірілген, жан-жақты және сенімді
  • SSMS белсенділік мониторы: Қосымша орнатусыз нақты уақыттағы бақылау
  • Кеңейтілген іс-шаралар: Жеңіл оқиғаны бақылау кіріктірілген SQL Server
  • sp_WhoIsActive: Әрекетті егжей-тегжейлі бақылауға арналған танымал тегін сақталған процедура
  • DBA сызықшасы: Толық мүмкіндіктері бар ашық бастапқы бақылау құралы
  • SQLWATCH: Нақты уақыттағы бақылау мүмкіндіктері бар ашық бастапқы код

Көптеген ұйымдар үшін Performance Monitor SSMS құралдарымен және sp_WhoIsActive-пен бірге қосымша ақысыз тамаша бақылау мүмкіндіктерін ұсынады.

17.9 PerfMon деректерін талдау үшін қалай экспорттаймын?

Төмендегі әдістерді пайдаланып өнімділік мониторының деректерін экспорттау:

CSV файлына экспорттау:

  1. Журнал файлы жүктелген кезде өнімділік мониторын ашыңыз
  2. Графикті тінтуірдің оң жақ түймешігімен басып, таңдаңыз Деректерді басқаша сақтау
  3. таңдау Мәтіндік файл (үтірмен бөлінген) (.csv)
  4. Орынды таңдап, сақтаңыз
  5. Талдау үшін Excel бағдарламасында ашыңыз

Relog пәрменін пайдаланыңыз:

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

Бұл пәрмен жолы утилитасы электрондық кесте қолданбаларында оңай талдау үшін екілік журнал файлдарын (.bg) CSV пішіміне түрлендіреді.

17.10 Кірістірілген опциялардың орнына үшінші тарап бақылау құралдарын қашан пайдалануым керек?

Келесі жағдайларда үшінші тарап құралдарын қарастырыңыз:

  • Үлкен сандарды басқару SQL Server даналар (10+)
  • Бірнеше деректер орталықтарында орталықтандырылған бақылауды қажет етеді
  • Болжалды талдау немесе аномалияны анықтау сияқты кеңейтілген мүмкіндіктер қажет
  • Оқиғаларды басқару жүйелерімен біріктірілген ескерту қажет
  • Сәйкестік туралы есеп беруді және тарихи талдауды талап ету
  • Пайдаланушы шешімдерін құру және қолдау үшін DBA ресурстарының болмауы
  • Гетерогенді дерекқор орталарын бақылау (SQL Server, Oracle, MySQL және т.б.)

Кірістірілген құралдар кішірек орталар үшін немесе теңшелетін бақылау шешімдерін әзірлей алатын білікті DBA бар кезде жақсы жұмыс істейді. Үшінші тарап құралдары уақытты үнемдеу, кеңейтілген мүмкіндіктер және кәсіби қолдау арқылы құндылықты қамтамасыз етеді.

18. Қосымша ресурстар

18.1 Ресми құжаттама

Microsoft кең ауқымды құжаттаманы ұсынады SQL Server өнімділік мониторы:

18.2 Ұсынылатын құралдар мен жүктеулер

үшін маңызды құралдар SQL Server өнімділік мониторы:

  • PAL құралы: https://github.com/clinthuffman/PAL
  • sp_WhoIsActive: http://whoisactive.com/
  • DBA сызықшасы: 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 Shack: https://www.sqlshack.com/
  • MSSQLTкеңестер: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • Жиынды асып кету SQL Server тег: https://stackoverflow.com/questions/tagged/sql-server

Бұл ресурстар оқулықтарды, ақауларды жою бойынша кеңестерді және тәжірибелі мамандардың ең жақсы тәжірибелерін ұсынады SQL Server кәсіпқойлар. Қауымдастық форумдарына қатысу сізге басқалардың тәжірибесінен үйренуге және өз біліміңізді бөлісуге көмектеседі.


Автор туралы

Юань Шэн бойынша 10 жылдан астам тәжірибесі бар дерекқордың аға әкімшісі (DBA) болып табылады SQL Server орталар мен кәсіпорынның дерекқорын басқару. Ол қаржы қызметтері, денсаулық сақтау және өндірістік ұйымдардағы дерекқорды қалпына келтірудің жүздеген сценарийлерін сәтті шешті.

Юань маманданған SQL Server дерекқорды қалпына келтіру, жоғары қолжетімді шешімдержәне өнімділікті оңтайландыру. Оның кең практикалық тәжірибесіне көп терабайттық дерекқорларды басқару, енгізу кіреді. Әрқашан қолжетімді топтаржәне маңызды бизнес жүйелері үшін автоматтандырылған резервтік көшірме жасау және қалпына келтіру стратегияларын әзірлеу.

Техникалық тәжірибесі мен практикалық көзқарасы арқылы Юань дерекқор әкімшілері мен АТ мамандарына күрделі мәселелерді шешуге көмектесетін толық нұсқаулықтарды жасауға бағытталған. SQL Server қиындықтарды тиімді шешеді. Ол соңғы жаңалықтардан хабардар болып отырады SQL Server шығарылымдары мен Microsoft корпорациясының дамып келе жатқан дерекқор технологиялары, оның ұсыныстары нақты әлемдегі ең жақсы тәжірибелерді көрсететініне көз жеткізу үшін қалпына келтіру сценарийлерін жүйелі түрде сынап отырады.

туралы сұрақтарыңыз бар SQL Server қалпына келтіру немесе қосымша дерекқор ақаулықтарын жою нұсқаулығы қажет пе? Юань қарсы алады кері байланыс пен ұсыныстар осы техникалық ресурстарды жақсарту үшін.

Қазір бөлісу: