1. Panimula sa SQL Server Subaybayan pagganap
1.1 Ano ang SQL Server Monitor ng Pagganap?
SQL Server ang performance monitor ay ang proseso ng pagsubaybay, pagsusuri, at pamamahala sa performance at kalusugan ng iyong SQL Server mga database. Kabilang dito ang pagkolekta at pagbibigay-kahulugan ng data tungkol sa iba't ibang aspeto ng iyong database system upang matiyak ang pinakamainam na pagganap, maiwasan ang mga isyu, at mapanatili ang kalusugan ng database.
Ang pagsubaybay sa pagganap ay sumasaklaw sa pagsubaybay sa mga oras ng pagpapatupad ng query, paggamit ng mapagkukunan, pagganap ng index, pagharang at mga deadlock, at mga pattern ng paglago ng database. Ang patuloy na pangangasiwa na ito ay nakakatulong sa mga administrator na matukoy ang mga potensyal na problema bago nila maapektuhan ang mga user o pagpapatakbo ng negosyo.
1.2 Mga Pangunahing Benepisyo ng Pagsubaybay sa Pagganap
Mabisa SQL Server Ang monitor ng pagganap ay naghahatid ng ilang mga kritikal na pakinabang:
- Proactive na pagtuklas ng isyu: Tukuyin at tugunan ang mga potensyal na problema bago ito makaapekto sa mga user o pagpapatakbo ng negosyo
- Pag-optimize ng pagganap: Ituro ang mga bottleneck at inefficiencies upang mapabuti ang pangkalahatang pagganap ng database
- Pagpaplano ng kapasidad: Pagtataya ng mga pangangailangan sa mapagkukunan at plano para sa hinaharap na paglago batay sa makasaysayang data
- Pagsunod at seguridad: Tiyakin ang pagsunod sa mga kinakailangan sa regulasyon at makita ang mga kahina-hinalang aktibidad
1.3 Mga Karaniwang Hamon sa Pagganap
Kung walang wastong SQL database performance monitor, nahaharap ang mga organisasyon sa ilang mga panganib:
- Hindi inaasahang downtime na nakakagambala sa pagpapatakbo ng negosyo
- Hindi magandang pagganap ng application na nakakaapekto sa karanasan ng user
- Pagkawala ng data o katiwalian
- Hindi mahusay na paggamit ng mga mapagkukunan na humahantong sa mga hindi kinakailangang gastos
- Mga bigong user at potensyal na pagkawala ng kita
Ayon sa isang pag-aaral sa IDC noong 2023, 65% ng mga isyu sa pagganap ng database ay nagmumula sa hindi magandang mga kasanayan sa pagsubaybay o pag-optimize.
2. Pag-unawa sa Windows Performance Monitor (PerfMon)
2.1 Ano ang Windows Performance Monitor?
Ang Windows Performance Monitor (PerfMon) ay isang built-in na tool sa Windows na sumusubaybay sa mga mapagkukunan ng system at pagganap ng application. Para sa SQL Server mga administrator, ang PerfMon ay nagbibigay ng napakahalagang mga insight sa parehong operating system at SQL Server mga sukatan, ginagawa itong mahalaga para sa komprehensibong pagsusuri sa pagganap.
Sinusukat ng PerfMon ang mga istatistika ng pagganap sa mga regular na pagitan at sine-save ang mga istatistikang iyon sa mga file para sa pagsusuri sa ibang pagkakataon. Maaaring piliin ng mga administrator ng database ang agwat ng oras, format ng file, at kung aling mga istatistika ang susubaybayan. Ang tool ay hindi SQL Server-specific—ginagamit ito ng mga administrator ng system upang subaybayan ang mismong Windows, Exchange, mga file server, at anumang application na maaaring makaranas ng mga bottleneck.
2.2 Paglulunsad ng Performance Monitor
Maaari mong ilunsad ang Performance Monitor gamit ang ilang mga pamamaraan:
- I-click ang simula, type pabango sa box para sa paghahanap, i-click ang "Performand Monitor" sa resulta ng paghahanap:
- pindutin Windows + R, type pabango, at pindutin ang Magpasok
- Mag-navigate sa Control Panel -> System at Security -> Administrative Tools -> Subaybayan pagganap
3. mahalaga SQL Server Mga Tagabilang ng Pagganap
3.1 Memory Performance Counter
Ang mga memory counter ay kritikal para sa pagsubaybay SQL Server pagganap habang ipinapahiwatig nila kung ang iyong database ay may sapat na mapagkukunan ng memorya.
Magagamit na MBytes
Ipinapakita ng counter na ito ang dami ng pisikal na memorya na agad na magagamit para sa paglalaan. Dapat itong manatiling pare-pareho at perpektong hindi bababa sa 4096 MB. Maaaring ipahiwatig iyon ng mababang halaga SQL ServerAng maximum na setting ng memorya ay iniiwan sa default, o hindiSQL Server ang mga application ay kumonsumo ng memorya.
Page Life Expectancy
Sinusukat ng Page Life Expectancy kung gaano katagal (sa mga segundo) nananatili ang isang page sa buffer pool nang hindi nire-reference. Ang isang normal na halaga ay 300 segundo o higit pa. Ang mas mababang mga halaga ay nagpapahiwatig ng presyon ng memorya at labis na buffer turnover, na binabawasan ang pagiging epektibo ng cache.
Buffer Cache Hit Ratio
Ang counter na ito ay nagpapahiwatig ng porsyento ng mga kahilingan sa data na nasagot gamit ang SQL buffer cache (memorya) sa halip na magbasa mula sa disk. Karaniwan itong nakakatugon o lumalampas sa 99%. Iminumungkahi iyon ng mas mababang mga halaga SQL Server nangangailangan ng mas maraming memorya o patuloy pa ring umiinit pagkatapos mag-restart.
Nakabinbin ang Memory Grants
Ipinapakita nito ang bilang ng mga prosesong naghihintay para sa memorya sa loob SQL Server. Sa ilalim ng normal na mga kundisyon, ang halagang ito ay dapat na pare-parehong 0. Ang mas mataas na mga halaga ay nagpapahiwatig ng hindi sapat na paglalaan ng memorya sa SQL Server.
Memorya ng Target na Server vs. Kabuuang Memorya ng Server
Ang Target Server Memory ay nagpapahiwatig ng mainam na dami ng memorya SQL Server gustong gamitin. Ipinapakita ng Kabuuang Memorya ng Server kung ano SQL Server kasalukuyang ginagamit. Ang ratio sa pagitan ng mga halagang ito ay dapat na humigit-kumulang 1. Ang mga makabuluhang pagkakaiba ay maaaring magpahiwatig ng presyon ng memorya o hindi sapat na magagamit na memorya.
3.2 Mga Tagabilang ng Pagganap ng Processor
Tumutulong ang mga counter ng CPU na matukoy ang mga bottleneck ng processor at maunawaan kung paano SQL Server gumagamit ng mga mapagkukunan ng computing.
% Oras ng Processor
Sinusukat nito ang porsyento ng lumipas na oras na ginugugol ng processor sa pagsasagawa ng mga di-idle na thread. Sa mga aktibong server, ang mga halaga ay maaaring tumaas hanggang 100%, ngunit ang matagal na paggamit na higit sa 70-75% ay karaniwang nagpapahiwatig ng mga isyu sa pagganap para sa mga user. Ang mga nawawala o hindi sapat na mga index ay kadalasang nagdudulot ng mataas na paggamit ng CPU.
% Pribilehiyo na Oras
Ang oras ng processor ay nahahati sa User mode at Privileged (Kernel) mode processing. Ang lahat ng disk access at I/O ay nangyayari sa ilalim ng Kernel mode. Kung ang counter na ito ay lumampas sa 25%, ang system ay malamang na gumaganap ng masyadong maraming I/O. Ang mga normal na halaga ay nasa pagitan ng 5% at 10%.
Haba ng Pila ng Processor
Ipinapakita ng counter na ito ang mga thread na naghihintay para sa mga mapagkukunan ng CPU. Mga value na patuloy na nasa itaas ng 1 (maliban sa panahon ng SQL Server backup compression) ay nagpapahiwatig ng presyon ng CPU. Madalas itong nangangahulugan na ang ibang mga application ay naka-install sa SQL Server machine, na lumalabag sa pinakamahuhusay na kagawian.
Mga Paglipat ng Konteksto/seg
Sinusukat nito kung gaano kadalas lumipat ang processor sa pagitan ng mga thread. Ang labis na paglipat ng konteksto ay maaaring makaapekto sa pagganap at nagpapahiwatig ng mataas na pag-load ng system.
3.3 Mga Tagabilang ng Pagganap ng Disk I/O
Ang mga disk counter ay mahalaga para sa pagsubaybay sa pagganap ng SQL dahil ang disk I/O ay kadalasang nagiging pangunahing bottleneck sa mga database system.
% Oras ng Disk
Itinatala nito ang porsyento ng oras na abala ang disk sa mga operasyon sa pagbasa/pagsusulat. Ang mga value na patuloy na lampas sa 85% ay nagpapahiwatig ng I/O bottleneck. Dahil ang disk ay mas mabagal kaysa sa memorya, ang pagbabawas ng sukatang ito ay nagpapabuti sa pagganap.
Avg. Disk sec/Read at Avg. Disk sec/Write
Sinusukat ng mga counter na ito ang average na oras (sa mga segundo) para sa mga operasyon sa pagbasa at pagsulat. Kung ang mga average na halaga ay lumampas sa 10-20ms, ang disk ay tumatagal ng masyadong mahaba upang iproseso ang data. Ang mga log drive ng transaksyon ay nangangailangan ng partikular na mabilis na pagganap ng pagsulat.
Haba ng Disk Queue
Nagpapakita ito ng mga natitirang kahilingan na magbasa/magsulat sa disk. Ang mga value na patuloy na mas mataas sa 2 (o 2 bawat disk para sa mga RAID array) ay nagpapahiwatig na ang disk ay hindi makakasabay sa mga kahilingan sa I/O.
Disk Bytes/seg
Sinusubaybayan nito ang rate ng paglilipat ng data papunta/mula sa disk. Kung lumampas ito sa na-rate na kapasidad ng disk, magsisimulang mag-backlog ang data, gaya ng ipinapahiwatig ng pagtaas ng Haba ng Pilay ng Disk.
Mga Paglilipat ng Disk/seg
Sinusubaybayan nito ang bilang ng mga operasyon sa pagbasa/pagsusulat na isinagawa sa disk. SQL Server Ang pag-access ng data ay karaniwang random, na mas mabagal dahil sa pagmamaneho ng paggalaw ng ulo. Tiyaking mananatili ang halagang ito sa ibaba ng maximum na rating ng iyong disk drive (karaniwang 100/seg para sa mga karaniwang drive).
3.4 SQL Server Mga Tukoy na Counter
3.4.1 Mga Tagapamahala ng Buffer Counter
Monitor ng mga counter ng Buffer Manager SQL ServerMga pagpapatakbo ng memory buffer:
- Binasa/seg ang pahina: Pinagsama-samang bilang ng mga nabasang pisikal na pahina ng database
- Nagsusulat/sec ang page: Pinagsama-samang bilang ng mga isinusulat ng pisikal na pahina ng database
- Lazy writes/sec: Bilang ng mga buffer na isinulat ng tamad na manunulat para magbakante ng memorya
- Mga pahina ng checkpoint/seg: Mga page na na-flush ng checkpoint o iba pang operasyon na nangangailangan ng lahat ng maruruming page na i-flush
3.4.2 Mga Counter ng Mga Istatistika ng SQL
Ang mga counter na ito ay nagbibigay ng insight sa SQL Server pagproseso ng query:
- Mga Batch na Kahilingan/seg: Bilang ng mga kahilingan sa batch ng SQL na natanggap ng server. Ito ay nagsisilbing benchmark para sa aktibidad ng server
- SQL Compilation/seg: Bilang ng mga compilation ng SQL. Dapat ay 10% o mas mababa sa kabuuang Batch Requests/seg
- SQL Re-Compilations/seg: Bilang ng mga muling compilation ng SQL. Dapat ding 10% o mas mababa sa kabuuang Batch Requests/seg
3.4.3 Mga Pangkalahatang Statistics Counter
- Mga Koneksyon ng User: Bilang ng mga user na nakakonekta sa system. Ginamit bilang benchmark upang subaybayan ang paglago ng koneksyon sa paglipas ng panahon
- Na-block ang Mga Proseso: Kasalukuyang bilang ng mga naka-block na proseso. Sa isip ay dapat na 0
3.4.4 Mga Tagapamahala ng Memorya
- Nakabinbin ang Memory Grants: Kabuuang bilang ng mga prosesong naghihintay para sa workspace memory grant. Dapat ay 0
4. Pagse-set Up ng Performance Monitor para sa SQL Server(Windows Vista / Server 2008 at mas bago)
Una sa lahat, kailangan nating gumawa ng container para mas madaling pamahalaan ang mga counter:
- Para sa Windows Vista / Server 2008 at mga mas bagong bersyon, maaari kang lumikha ng Mga Set ng Data Collector sa seksyong ito.
- Para sa Windows XP / Server 2003 at mga naunang bersyon, maaari kang lumikha ng Counter Logs in ang susunod na seksyon.
4.1 Ano ang Mga Set ng Data Collector?
Ang Data Collector Set ay nag-aayos ng mga performance counter, event trace data, at system configuration information sa isang unit ng koleksyon. Nagbibigay ang mga ito ng higit na kakayahang umangkop kaysa sa mga simpleng counter log at pinapagana ang awtomatiko, naka-iskedyul na pagkolekta ng data para sa komprehensibong pagsubaybay sa pagganap ng database ng SQL.
4.2 Paglikha ng Set ng Data Collector
Gumawa ng custom na Data Collector Set na susubaybayan SQL Server mga counter ng pagganap:
- Buksan ang Performance Monitor
- Lumawak Mga Set ng Data Collector
- I-right-click ang Tinukoy ng Gumagamit
- piliin bago -> Set ng Data Collector
- Maglagay ng mapaglarawang pangalan (hal., “SQL Server Mga Sukatan sa Pagganap")
- piliin Gumawa ng mano-mano (Advanced)
- I-click ang susunod
- Tsek Lumikha ng mga log ng data -> Performance Counter
- I-click ang susunod
- I-click ang Idagdag upang pumili ng mga counter
- Idagdag ninanais SQL Server at mga system counter.
- Itakda Sampol na pagitan
- Para sa regular na pagsubaybay, gumamit ng 1 minuto (60 segundo)
- Para sa aktibong pag-troubleshoot, gumamit ng 15-30 segundo
- Iwasang magpatakbo ng mga high-frequency na pagkuha ng pangmatagalan, dahil maaari silang makaapekto sa performance at makabuo ng labis na data.
- I-click ang susunod
- Piliin ang lokasyon upang i-save ang mga log
- I-click ang Tapusin, gagawa ng bagong Data Collector Set.
- Bilang default, gagawin ng bagong Data Collector Set HINDI awtomatikong magsisimula. Kailangan mo itong hanapin sa kaliwang panel, sa ilalim ng pagganap -> Mga Set ng Data Collector -> Tinukoy ng Gumagamit -> Ang iyong Data Collector, i-right click ito at piliin simula
4.3 Mga Pangunahing Counter na Idaragdag
- Memory -> Magagamit na MBytes
- Pisikal na Disk -> Avg. Disk sec/Read (lahat ng pagkakataon maliban sa _Total)
- Pisikal na Disk -> Avg. Disk sec/Write (lahat ng pagkakataon maliban sa _Total)
- Pisikal na Disk -> Mga Pagbasa ng Disk/seg (lahat ng pagkakataon maliban sa _Kabuuan)
- Pisikal na Disk -> Disk Writes/sec (lahat ng pagkakataon maliban sa _Total)
- Processor -> % Processor Time (lahat ng pagkakataon maliban sa _Total)
- SQLServer: Pangkalahatang Istatistika -> Mga Koneksyon ng User
- SQLServer: Memory Manager -> Memory Grants Nakabinbin
- SQLServer: SQL Statistics -> Batch Requests/sec
- SQLServer: SQL Statistics -> SQL Compilations/seg
- SQLServer: SQL Statistics -> SQL Recompilations/seg
- System -> Haba ng Pila ng Processor
4.4 Pagtatakda ng Mga Kondisyon sa Paghinto
I-configure ang mga kundisyon sa paghinto upang maiwasan ang walang limitasyong paglago ng data:
- Pagkatapos gawin ang Data Collector Set, i-right click ito at piliin Mga Katangian
- I-click ang Kondisyon ng Itigil tab
- Paganahin Pangkalahatang tagal
- Itakda ang tagal sa 1 araw (24 na oras)
- I-click ang OK upang i-save
Tinitiyak nito na hindi masyadong lumalaki ang log at awtomatikong magsisimulang muli kung naka-iskedyul.
4.5 Pag-iiskedyul ng Pagkolekta ng Data
I-automate ang pangongolekta ng data para matiyak ang pare-parehong pagsubaybay:
- I-right-click ang iyong Data Collector Set at piliin Mga Katangian
- I-click ang Iskedyul tab
- I-click ang Idagdag para gumawa ng bagong schedule
- I-configure ang petsa at oras ng pagsisimula
- Itakda ang pattern ng pag-ulit (hal., araw-araw)
- I-click ang OK upang i-save ang iskedyul
Para sa awtomatikong pagsisimula, i-configure ang Data Collector Set upang magsimula kapag nag-boot ang server sa pamamagitan ng paglikha ng startup trigger sa Windows Task Scheduler.
5. Pagse-set Up ng Performance Monitor para sa SQL Server(Windows XP / Server 2003 at mas maaga)
Para sa Windows XP / Server 2003 at mga naunang bersyon, maaari kang lumikha ng Counter Logs, na hahayaan kang pumili ng isang hanay ng mga counter ng pagganap at i-log ang mga ito sa isang file sa pana-panahon.
5.1 Paglikha ng mga Counter Log
Sundin ang mga hakbang na ito upang lumikha ng bagong counter log:
- Buksan ang Performance Monitor
- Lumawak Mga Log ng Pagganap at Mga Alerto sa kaliwang pane
- I-right-click ang Mga Counter Log
- piliin Bagong Mga Setting ng Log
- Pangalanan ang log gamit ang pangalan ng iyong database server (hal., “ProductionSQL01”)
- I-click ang OK upang simulan ang pagsasaayos
Ang paglikha ng hiwalay na mga counter log para sa bawat server ay nagbibigay-daan sa iyong subukan ang pagganap sa mga indibidwal na server nang hindi nangongolekta ng data para sa lahat ng mga server nang sabay-sabay.
5.2 Pagdaragdag ng Performance Counter
Pagkatapos gumawa ng counter log, idagdag ang partikular na performance counter na gusto mong subaybayan:
- I-click ang Magdagdag ng mga Counter butones
- Baguhin ang pangalan ng computer upang ituro sa iyong SQL Server halimbawa
- pindutin Tab upang i-load ang magagamit na mga bagay sa pagganap
- Pumili ng performance object mula sa dropdown (hal, Memorya)
- Pumili ng mga partikular na counter mula sa ang listahan
- Pumili ng mga instance kung naaangkop (hal., mga indibidwal na processor o disk)
- I-click ang Idagdag upang isama ang counter
- Ulitin para sa lahat ng gustong counter
- I-click ang Pagsasara kapag natapos na
5.3 Pag-configure ng Sample Interval
Tinutukoy ng sample interval kung gaano kadalas nangongolekta ng data ang Performance Monitor. I-configure ang mga naaangkop na agwat batay sa iyong mga pangangailangan sa pagsubaybay:
- Sa mga katangian ng counter log, hanapin Sample ng data bawat
- Itakda ang agwat (default ay 15 segundo)
- Para sa baseline monitoring, gumamit ng 1 minutong pagitan para sa pang-araw-araw na koleksyon
- Para sa pag-troubleshoot, gumamit ng 15-30 segundong pagitan para sa maiikling pagsabog
- I-click ang OK upang mag-aplay
Tandaan na ang mas maliliit na pagitan ay bumubuo ng mas maraming data, na maaaring mas mahirap i-render at pag-aralan. Ang mas malalaking agwat ay maaaring makaligtaan ng mahahalagang spike. Balansehin ang granularity ng data sa mga kinakailangan sa imbakan at pagsusuri.
5.4 Pag-configure ng mga Log File
Tinitiyak ng wastong pagsasaayos ng log file na ang data ay naiimbak nang mahusay at madaling ma-access:
- I-click ang Mag-log File tab sa mga katangian ng counter log
- Baguhin ang uri ng log file sa Text File (Comma delimited) para sa madaling pag-import ng Excel
- I-click ang I-configure ang
- Itakda ang landas ng file sa isang nakalaang lokasyon (hal., isang nakabahaging folder ng PerformanceLogs)
- I-click ang OK upang kumpirmahin
Gumamit ng bahaging naa-access sa network para sa imbakan ng log upang ma-access mo ang mga file nang malayuan at maibahagi ang mga ito sa ibang mga user.
5.5 Pag-set Up ng Mga Kredensyal
I-configure ang mga naaangkop na kredensyal para ma-access ng Performance Monitor ang remote SQL Server mga pagkakataon:
- Sa mga katangian ng counter log, hanapin Patakbuhin Bilang
- Ilagay ang iyong domain username sa format: DOMAIN\username
- I-click ang Itakda ang Password
- Ipasok at kumpirmahin ang iyong password
- I-click ang OK upang i-save
Nagbibigay-daan ito sa serbisyo ng PerfMon na mangalap ng mga istatistika gamit ang iyong mga pahintulot sa domain kaysa sa sarili nitong mga kredensyal.
6. Pagsusuri sa Performance Monitor Data
6.1 Pagtingin sa Mga Log File sa Performance Monitor
Ang Performance Monitor ay maaaring magpakita ng makasaysayang data mula sa mga naka-save na log file:
- Buksan ang Performance Monitor
- Sa kaliwang pane, i-click Mga Tool sa Pagsubaybay -> Subaybayan pagganap.
- Mag-right-click saanman sa lugar ng graph
- piliin Mga Katangian
- I-click ang pinagmulan tab
- piliin Mag-log file radio button
- I-click ang Idagdag
- Mag-navigate sa iyong log file (.blg o .csv)
- Piliin ang file at i-click Pagbubukas
- Gamitin ang Saklaw ng Oras slider upang piliin ang panahon na gusto mong suriin
- I-click ang OK upang isara ang dialog ng Properties
- I-click ang icon na berdeng plus para magdagdag ng mga counter mula sa log file
- Piliin ang nais na mga counter na ipapakita
- I-click ang OK
Ipapakita na ngayon ng graph ang makasaysayang data mula sa log file. Gamitin ang slider na Saklaw ng Oras sa Properties upang paliitin ang mga partikular na yugto ng panahon para sa detalyadong pagsusuri.
6.2 Pag-export ng Data sa Excel
Nagbibigay ang Excel ng mahusay na mga kakayahan sa pagsusuri para sa data ng counter ng pagganap:
- Buksan ang Performance Monitor nang na-load ang iyong log file
- Mag-right-click saanman sa lugar ng graph
- piliin I-save ang Data Bilang
- Pumili ng lokasyon para sa file
- piliin Text File (Comma delimited) (.csv) mula sa dropdown
- I-click ang I-save ang
- Buksan ang CSV file sa Excel
I-format ang na-export na data para sa mas mahusay na pagsusuri:
- Tanggalin ang half-empty row 2 at i-clear ang cell A1
- I-format ang column A bilang Petsa/Oras
- I-format ang mga numeric na column na may zero decimal at thousands separator
- Hanapin at palitan ang mga pangalan ng server sa mga header (hal., palitan ang “\\SERVERNAME” ng blangko)
- Linisin ang mga pangalan ng bagay sa mga header (hal., "Memory", "PhysicalDisk", "Processor")
- Bawasan ang laki ng font ng header sa 8 puntos para sa mas mahusay na visibility
6.3 Pagbibigay-kahulugan sa mga Kontrang Halaga
6.3.1 Memory Counter Analysis
Kapag sinusuri ang mga memory counter, hanapin ang mga indicator na ito:
- Magagamit na MBytes: Dapat manatili sa itaas ng 4096 MB nang tuluy-tuloy
- Pag-asa sa Buhay ng Pahina: Ang mga halagang higit sa 300 segundo ay nagpapahiwatig ng malusog na memorya. Ang mas mababang mga halaga ay nagmumungkahi ng presyon ng memorya
- Buffer Cache Hit Ratio: Dapat matugunan o lumampas sa 99%. Ang mas mababang mga halaga ay nagpapahiwatig ng labis na pagbabasa ng disk
- Nakabinbin ang Memory Grants: Dapat palaging 0. Anumang positibong halaga ay nagpapahiwatig ng kakulangan ng memorya
6.3.2 Pagsusuri ng Counter ng CPU
Kasama sa mga tagapagpahiwatig ng pagganap ng CPU ang:
- % Oras ng Processor: Ang matagal na paggamit na higit sa 75% ay nagpapahiwatig ng mga isyu sa pagganap. Ang mga spike hanggang 100% ay normal ngunit hindi dapat magpatuloy
- Haba ng Pila ng Processor: Ang mga halaga sa itaas 1 ay nagpapahiwatig ng presyon ng CPU. Suriin ang Task Manager upang matukoy kung aling mga proseso ang gumagamit ng CPU
- % Pribilehiyo na Oras: Dapat manatili sa pagitan ng 5-10%. Ang mga halagang higit sa 25% ay nagmumungkahi ng labis na mga pagpapatakbo ng I/O
6.3.3 Pagsusuri ng Disk Counter
Mga limitasyon ng pagganap ng disk:
- Avg. Disk sec/Read and Write: Dapat manatili sa ibaba 10-20ms. Ang mas mataas na mga halaga ay nagpapahiwatig ng mabagal na disk subsystem
- Haba ng Disk Queue: Ang mga value na patuloy na nasa itaas ng 2 (o 2 bawat disk sa RAID) ay nagpapahiwatig ng mga bottleneck ng I/O
- % Oras ng Disk: Ang mga sustained value na higit sa 85% ay nagpapahiwatig ng disk saturation
6.4 Paggamit ng mga Formula at Istatistika
Magdagdag ng mga istatistikal na formula sa Excel para sa mabilis na pagsusuri:
- Maglagay ng 7 blangkong row sa itaas ng iyong spreadsheet
- Magdagdag ng mga label sa column A: Average, Median, Min, Max, Std Deviation
- Sa cell B2, ilagay ang: =AVERAGE(B9:B100) (i-adjust ang B100 sa iyong huling hilera ng data)
- Sa cell B3, ilagay ang: =MEDIAN(B9:B100)
- Sa cell B4, ilagay ang: =MIN(B9:B100)
- Sa cell B5, ilagay ang: =MAX(B9:B100)
- Sa cell B6, ilagay ang: =STDEV(B9:B100)
- Kopyahin ang mga formula sa lahat ng counter column
- Piliin ang cell B9 at pindutin ang Alt+W+F+Enter para i-freeze ang mga pane
Nakakatulong ang mga istatistikang ito na matukoy ang mga trend, outlier, at normal na operating range para sa bawat counter.
7. Performance Analysis for Logs (PAL) Tool
7.1 Panimula sa PAL
Ang Performance Analysis for Logs (PAL) ay isang libreng tool na binuo ni Clint Huffman na sinusuri ang mga log ng Performance Monitor at bumubuo ng mga HTML na ulat na may threshold analysis. Inihahambing ng PAL ang iyong data ng pagganap laban sa mga kilalang threshold at nagbibigay ng mga detalyadong rekomendasyon para sa SQL Server pag-optimize ng pagganap.
I-download ang PAL mula sa GitHub repository: https://github.com/clinthuffman/PAL
7.2 Pag-set up ng PAL
I-install ang PAL sa pamamagitan ng pagsunod sa mga hakbang na ito:
- I-download ang PAL setup file mula sa GitHub
- Patakbuhin ang installer
- I-click ang susunod sa welcome screen
- Suriin at tanggapin ang direktoryo ng pag-install
- I-click ang susunod magpatuloy
- I-click ang I-install upang simulan ang pag-install
- Maghintay para sa pag-install upang makumpleto
- I-click ang Tapusin
7.3 Pagproseso ng mga Log File gamit ang PAL
Suriin ang iyong mga log ng Performance Monitor gamit ang PAL:
- Ilunsad ang PAL mula sa Start menu o direktoryo ng pag-install
- I-click ang Counter Log tab
- I-click ang Magtingin upang piliin ang iyong .blg file
- Mag-navigate sa iyong Performance Monitor log file
- I-click ang Pagbubukas
- I-click ang Threshold File tab
- Pumili ng threshold file mula sa dropdown (hal., “SQL Server 2016 ”)
- I-click ang Tanong tab
- Sagutin ang mga tanong tungkol sa configuration ng iyong system
- Tukuyin kung ang iyong SQL Server ay OLTP o Data Warehouse
- Ilagay ang kabuuang magagamit na RAM
- I-click ang Mga Pagpipilian sa Output tab
- Pumili ng direktoryo ng output para sa ulat ng HTML
- Tsek HTML format ng output
- I-click ang Isakatuparan tab
- Suriin ang iyong mga pinili
- Tsek Simulan ang pagpapatupad ngayon
- I-click ang Tapusin
7.4 Pagsusuri ng mga Ulat ng PAL
Pagkatapos makumpleto ng PAL ang pagsusuri, bubuo ito ng HTML na ulat na naglalaman ng:
- Executive summary ng mga isyu sa pagganap
- Detalyadong counter analysis na may mga chart
- Ang mga paglabag sa threshold ay naka-highlight sa kulay
- Mga partikular na rekomendasyon para sa bawat isyu
- Mga makasaysayang uso at pattern
Gumagamit ang ulat ng color coding upang ipahiwatig ang kalubhaan: pula para sa mga kritikal na isyu, dilaw para sa mga babala, at berde para sa malusog na sukatan. Suriin ang bawat seksyon upang maunawaan ang mga bottleneck sa pagganap at sundin ang mga rekomendasyon ng PAL para sa pag-optimize.
8. Alternatibong SQL Server Mga Tool sa Pagsubaybay
8.1 Naka-built-in SQL Server Kagamitan
8.1.1 SQL Server Aktibo Monitor
SQL Server Aktibo Monitor nagpapakita ng real-time na impormasyon tungkol sa SQL Server mga proseso at pagganap:
- Pagbubukas SQL Server Management Studio(SSMS) at kumonekta sa instance ng iyong server
- I-right-click ang pangalan ng server sa Object Explorer
- piliin Aktibo Monitor
Ipinapakita ng Activity Monitor ang mga proseso, paghihintay ng mapagkukunan, I/O ng data file, at mga kamakailang mamahaling query. Nagbibigay ito ng mabilis na mga insight sa kasalukuyang aktibidad ng database ngunit hindi nag-iimbak ng makasaysayang data.
8.1.2 SQL Server Dashboard ng Pagganap
SQL Server Kasama sa Management Studio ang mga built-in na ulat sa pagganap:
- In SQL Server Management Studio(SSMS), i-right-click ang SQL Server halimbawa sa Object Explorer
- piliin Ulat -> Mga Karaniwang Ulat
- Pumili mula sa mga available na ulat tulad ng Dashboard ng Pagganap
Nagbibigay ang Performance Dashboard ng mga visual na insight sa SQL Server instance performance, kabilang ang system CPU utilization, kasalukuyang mga kahilingan sa paghihintay, at mga sukatan ng performance. I-access ito sa pamamagitan ng menu ng Mga Karaniwang Ulat.
8.1.3 SQL Server Profiler
SQL Server Profiler kinukuha at pagsusuri SQL Server mga kaganapan tulad ng pagsasagawa ng query, mga pagpapatakbo ng transaksyon, at mga aktibidad sa pag-log in.
Upang simulan ang SQL Server profiler:
- In SQL Server Management Studio, i-click Kagamitan -> SQL Server Profiler
Malaki ang naitutulong ng Profiler sa performance, kaya gamitin ito nang may pag-iingat at mas mabuti kung hindi peak hours. Para sa karamihan ng mga sitwasyon, ang Extended Events ay nagbibigay ng mas mahusay na performance na may mas kaunting epekto.
8.1.4 Mga Pinalawak na Kaganapan
Mga Pinalawak na Kaganapan ay isang magaan na sistema ng pagsubaybay sa pagganap na nakapaloob SQL Server. Pinapalitan nito SQL Server Profiler na may mas mahusay na pagganap at mas mababang overhead.
Mga pangunahing tampok ay kinabibilangan ng:
- Fine-grained na pagsubaybay sa mga partikular na kaganapan
- Minimal na epekto sa pagganap
- Nako-customize na mga session ng kaganapan
- Pagsasama sa SSMS at iba pang mga tool
- Suporta para sa kumplikadong pag-filter at pagsasama-sama
Gumawa ng Extended Event session sa pamamagitan ng SSMS:
- In Object Explorer, palawakin ang iyong server at pumunta sa Pamamahala -> Mga Pinalawak na Kaganapan -> Mga Sesyon
- Mag-right-click sa Session at pumili Bagong Session Wizard
- Sundin ang mga tagubilin upang magsimula ng isang bagong sesyon.
8.1.5 Mga Dynamic na Pagtingin sa Pamamahala (Mga DMV)
Inilalantad ng mga DMV ang detalyadong impormasyon ng estado ng server para sa pagsubaybay sa kalusugan, pag-diagnose ng mga isyu, at pag-tune ng pagganap. Kabilang sa mga pangunahing DMV ang:
- sys.dm_exec_query_stats: I-query ang mga istatistika ng pagganap
- sys.dm_os_wait_stats: Mga uri ng paghihintay na nakakaapekto sa pagganap ng server
- sys.dm_os_performance_counters: SQL Server data ng counter ng pagganap
- sys.dm_exec_requests: Kasalukuyang nagsasagawa ng mga kahilingan
- sys.dm_exec_sessions: Mga aktibong session ng user
I-query ang mga view na ito gamit ang T-SQL para ma-access ang real-time na data ng performance at mga makasaysayang sukatan.
Pangunahing Paggamit
-- 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 Mga Solusyon sa Pagsubaybay ng Third-Party
Redgate SQL Monitor
Ang Redgate SQL Monitor ay dalubhasa sa pagsubaybay SQL Server at mga kapaligiran ng Azure SQL Database. Nagbibigay ito ng pagmamanman sa buong estate, nako-customize na mga alerto at dashboard, mga detalyadong kakayahan sa pag-uulat, at pagsasama sa iba pang mga tool ng Redgate.
Mga SolarWinds SQL Server Tool sa Pagsubaybay
Ang SolarWinds SQL Server Ang Monitoring Tool, na kilala rin bilang SQL Sentry, ay idinisenyo upang masuri, malutas, at maiwasan ang mga seryosong isyu sa pagganap sa SQL Server.
ng IDERA SQL Server Tool sa Pagsubaybay sa Pagganap
Ang IDERA SQL Diagnostic Manager ay isang makapangyarihan SQL Server isang kagamitan sa pagsubaybay sa pagganap na idinisenyo upang tumulong sa proaktibong pagsubaybay, pag-diagnose, at pag-tune ng pagganap.
Pagsubaybay sa SQL ng Applications Manager
Nag-aalok ang Applications Manager ng Microsoft SQL Server Tool sa pagsubaybay na nagbibigay ng mga kapaki-pakinabang na solusyon sa IT. Idinisenyo ito upang pangasiwaan ang pagganap ng mga database ng SQL, habang sabay na tinutukoy ang mga bug at niresolba ang mga isyu na maaaring humantong sa mga paghinto sa operasyon ng isang organisasyon.
8.3 Mga Tool sa Pagsubaybay sa Open Source
Dash ng DBA
Ang DBA Dash ay isang libre, open-source na tool sa pagsubaybay na nagbibigay ng mga insight sa SQL Server kalusugan, pagganap, at aktibidad. Ito ay partikular na kapaki-pakinabang para sa maliliit hanggang katamtamang laki ng mga kapaligiran at kasama ang pang-araw-araw na pagsusuri sa DBA, pagsubaybay sa pagganap, at pagsubaybay sa configuration.
SQLWATCH
Nag-aalok ang SQLWATCH ng desentralisado, malapit sa real-time SQL Server pagsubaybay na may 5 segundong granularity para sa pagkuha ng mga spike ng workload. Sinusuportahan nito ang Grafana para sa mga real-time na dashboard at Power BI para sa malalim na pagsusuri. Nagbibigay ang tool ng malawak na mga opsyon sa pagsasaayos, zero na kinakailangan sa pagpapanatili, at walang limitasyong scalability.
Opserver
Binuo ng Stack Exchange, sinusubaybayan ng Opserver ang maramihang mga sistema kabilang ang SQL Server, Redis, at Elasticsearch. Nagbibigay ito ng view na "lahat ng server" para sa mga istatistika ng CPU, memorya, network, at hardware sa iyong imprastraktura.
sp_WhoIsActive
Ang sp_WhoIsActive ay isang komprehensibong proseso ng pagsubaybay sa aktibidad na nakaimbak na nilikha ni Adam Machanic. Gumagana ito sa lahat SQL Server mga bersyon mula 2005 hanggang sa kasalukuyang mga release at malawakang ginagamit ng SQL Server Mga DBA para sa real-time na pagsubaybay sa aktibidad.
Upang magamit ang sp_WhoIsActive, i-download ito mula sa http://whoisactive.com/, i-install ito sa iyong database, at isagawa ang:
EXEC sp_WhoIsActive
Ipinapakita ng pamamaraan ang kasalukuyang nagsasagawa ng mga query, impormasyon sa paghihintay, mga detalye ng pagharang, at pagkonsumo ng mapagkukunan.
9. Pinakamahuhusay na Kasanayan para sa SQL Server Subaybayan pagganap
9.1 Pagtatatag ng Mga Baseline ng Pagganap
Ang mga baseline ng pagganap ay nagtatatag ng mga normal na parameter ng pagpapatakbo para sa iyong SQL Server kapaligiran. Kung walang mga baseline, hindi mo matutukoy kung ang mga kasalukuyang sukatan ay nagpapahiwatig ng mga problema o kumakatawan sa karaniwang pag-uugali.
Lumikha ng mga baseline sa pamamagitan ng:
- Pagkolekta ng data ng pagganap sa panahon ng mga normal na operasyon nang hindi bababa sa isang linggo
- Pagkuha ng mga sukatan sa parehong oras ng peak at off-peak
- Pagdodokumento ng mga karaniwang halaga para sa mga pangunahing counter
- Pagtatala ng mga pana-panahong pagkakaiba-iba kung naaangkop
- Pag-iimbak ng baseline data para sa paghahambing sa mga sukatan sa hinaharap
I-update ang mga baseline kada quarter o pagkatapos ng makabuluhang pagbabago sa imprastraktura, mga update sa application, o mga pagbabago sa database.
9.2 Pagtatakda ng Naaangkop na Mga Limitasyon sa Alerto
I-configure ang mga matatalinong threshold para makatanggap ng mga makabuluhang alerto nang hindi pinapalaki ang iyong sarili sa mga notification:
- Memory Grants Nakabinbin > 0 ay nagpapahiwatig ng presyon ng memorya
- Ang Haba ng Queue ng Processor > 2 bawat core ay nagmumungkahi ng bottleneck ng CPU
- Ang disk sec/Read o Write > 20ms ay nagpapahiwatig ng mabagal na I/O
- Mga Naka-block na Proseso > 5 signal ng mga isyu sa pagtatalo
- Ang Page Life Expectancy < 300 segundo ay nagpapahiwatig ng presyon ng memorya
Isaayos ang mga threshold batay sa iyong baseline data at mga partikular na katangian ng workload. Gumamit ng mga adaptive threshold na tumutukoy sa mga normal na variation sa iyong kapaligiran.
9.3 Regular na Pagsusuri at Pagsusuri ng Data
Mag-iskedyul ng mga regular na pagsusuri sa pagganap upang matukoy ang mga uso at mga umuusbong na isyu:
- Araw-araw: Suriin ang mataas na antas ng mga sukatan at kamakailang mga alerto
- Lingguhan: Magsagawa ng malalim na pagsusuri ng mga uso sa pagganap
- Buwan-buwan: Bumuo ng mga komprehensibong ulat at ihambing sa mga baseline
- Quarterly: Suriin ang pagpaplano ng kapasidad at mga pangmatagalang uso
Idokumento ang mga natuklasan at subaybayan ang mga pagpapabuti sa pagganap sa paglipas ng panahon.
9.4 Pagbalanse sa Overhead sa Pagsubaybay
Ang pagsubaybay mismo ay gumagamit ng mga mapagkukunan, kaya balansehin ang pagkolekta ng data na may epekto sa pagganap:
- Gumamit ng 30-60 segundong pagitan para sa patuloy na pagsubaybay
- Gumamit ng 15 segundong pagitan lamang para sa aktibong pag-troubleshoot
- Limitahan ang tagal ng Set ng Data Collector para maiwasan ang labis na data
- Mag-imbak ng mga log sa hiwalay na mga drive mula sa mga file ng database
- I-archive ang lumang data ng pagganap upang mapanatili ang mga napapamahalaang laki ng file
Ang Performance Monitor ay nagdaragdag ng kaunting overhead kapag na-configure nang maayos, karaniwang wala pang 2% ng mga mapagkukunan ng system.
9.5 Pangmatagalang Pagpapanatili ng Data
Panatilihin ang data ng pagganap para sa makabuluhang pagsusuri ng trend at pagpaplano ng kapasidad:
- Panatilihin ang hindi bababa sa 1-2 taon ng data ng pagganap
- I-archive ang data sa hiwalay na storage pagkatapos ng 3-6 na buwan
- I-compress ang mga mas lumang log file para makatipid ng espasyo
- Idokumento ang anumang mahahalagang kaganapan o pagbabago na nakakaapekto sa pagganap
Dahil sa medyo maliit na sukat ng data ng counter ng pagganap, ang pagpapanatili nito nang walang katiyakan ay kadalasang magagawa at mahalaga para sa pangmatagalang pagsusuri.
9.6 Pagsasama sa Mga Kasanayan sa DevOps
Isama ang pagsubaybay sa pagganap ng database sa mga pipeline ng CI/CD:
- Isama ang mga sukatan ng pagganap ng database sa pagpapatunay ng deployment
- I-automate ang pagsubok sa pagganap para sa mga bagong release
- Patunayan na ang mga pagbabago sa code ay hindi negatibong nakakaapekto sa pagganap
- Gumawa ng mga benchmark ng performance para sa bawat release
- Isama ang mga alerto sa pagsubaybay sa mga sistema ng pamamahala ng insidente
10. Pag-troubleshoot ng Mga Karaniwang Isyu sa Pagganap
10.1 Pagkilala sa Mga Bottleneck ng CPU
Ang mga bottleneck ng CPU ay nagpapakita bilang mabagal na oras ng pagtugon sa query at mataas na paggamit ng processor. Gamitin ang mga hakbang na ito upang masuri ang mga isyu sa CPU:
- Suriin ang counter ng Haba ng Queue ng Processor. Ang mga halagang higit sa 2 bawat core ay nagpapahiwatig ng presyon ng CPU
- Suriin ang % Oras ng Processor. Ang mga sustained value na higit sa 75% ay nagmumungkahi ng bottleneck ng CPU
- Remote desktop sa SQL Server
- Buksan ang Task Manager (Ctrl+Shift+Esc)
- I-click ang Mga Proseso tab
- Tsek Ipakita ang mga proseso mula sa lahat ng user
- I-click ang CPU header ng column upang pagbukud-bukurin ayon sa paggamit ng CPU
- Tukuyin kung aling mga proseso ang gumagamit ng mga mapagkukunan ng CPU
Kung hindi-SQL Server ang mga application ay gumagamit ng makabuluhang CPU, alisin ang mga ito mula sa database server. Kung ang sqlservr.exe ay gumagamit ng mataas na CPU, mag-imbestiga gamit ang mga pamamaraang ito:
- Suriin ang SQL Compilations/seg at SQL Re-Compilations/seg. Ang mga value na higit sa 10% ng Mga Batch na Kahilingan/seg ay nagpapahiwatig ng labis na compilation
- Query sys.dm_exec_query_stats para matukoy ang mga query na masinsinang CPU
- Suriin ang mga plano sa pagpapatupad para sa mga nawawalang index o hindi mahusay na operasyon
- Isaalang-alang ang pagdaragdag ng mga index upang bawasan ang mga pag-scan sa talahanayan
10.2 Pag-diagnose ng mga Problema sa Memory
Malaki ang epekto ng mga isyu sa memorya SQL Server pagganap. I-diagnose ang mga problema sa memorya gamit ang mga indicator na ito:
Magagamit na Memory Drops
Kung ang Available MBytes ay patuloy na bumaba sa 100 MB, ang operating system ay mahaharap sa kakulangan ng memorya. Maaaring mag-page out ang Windows. SQL Server memory sa disk, na nagiging sanhi ng pagkasira ng pagganap.
Mababang Pag-asa sa Buhay ng Pahina
Ang Pag-asa sa Buhay ng Pahina sa ibaba 300 segundo ay nagpapahiwatig ng mataas na buffer cache turnover. Iminumungkahi nito ang alinman sa hindi sapat na paglalaan ng memorya o labis na presyon ng memorya mula sa mga query.
Mababang Buffer Cache Hit Ratio
Buffer Cache Hit Ratio na mas mababa sa 99% ay nangangahulugan SQL Server madalas na nagbabasa ng data mula sa disk kaysa sa memorya. Ito ay nangyayari kapag ang buffer pool ay masyadong maliit o SQL Server umiinit pa rin pagkatapos mag-restart.
Nakabinbin ang Memory Grants
Ang anumang value na mas mataas sa 0 para sa Memory Grants Pending ay nagpapahiwatig na ang mga query ay naghihintay para sa memory grant. Ito ay kumakatawan sa isang kritikal na kakulangan sa memorya na nangangailangan ng agarang atensyon.
Upang malutas ang mga isyu sa memorya:
- I-configure ang SQL Server max memory setting para mag-iwan ng sapat na RAM para sa operating system (karaniwang 4-8 GB depende sa laki ng server)
- Paganahin ang pahintulot na "I-lock ang Mga Pahina sa Memorya" para sa SQL Server account ng serbisyo
- Magdagdag ng higit pang pisikal na RAM sa server kung magpapatuloy ang presyon ng memorya
- Kilalanin at i-optimize ang memory-intensive na mga query
10.3 Paglutas ng Mga Isyu sa Disk I/O
Ang Disk I/O ay madalas na nagiging pangunahing bottleneck sa pagganap sa mga database system. I-diagnose ang mga isyu sa disk gamit ang mga pamamaraang ito:
Mataas na Disk Queue Haba
Ang Haba ng Disk Queue na patuloy na nasa itaas ng 2 (o 2 bawat disk para sa RAID) ay nagpapahiwatig na ang disk subsystem ay hindi makakasabay sa mga kahilingan sa I/O. Lumilikha ito ng backlog ng mga nakabinbing operasyon.
Labis na Disk Latency
Avg. Disk sec/Read at Avg. Ang mga halaga ng disk sec/Write sa itaas 10-20ms ay nagpapahiwatig ng mabagal na tugon ng disk. Ang mga log drive ng transaksyon ay nangangailangan ng partikular na mabilis na pagganap, mas mabuti na wala pang 5ms para sa pagsusulat.
Mataas na % Disk Time
Ang patuloy na % Disk Time na higit sa 85% ay nagpapahiwatig ng saturation ng disk. Ginugugol ng disk ang halos lahat ng oras nito sa pagproseso ng mga I/O request na may kaunting natitirang idle capacity.
Bago tugunan ang mga isyu sa disk, i-verify na hindi sila sintomas ng mga problema sa memorya. Hindi sapat na puwersa ng memorya SQL Server upang magbasa ng higit pang data mula sa disk, artipisyal na pagpapalaki ng mga sukatan ng disk.
Upang malutas ang tunay na mga isyu sa disk I/O:
- Mag-upgrade sa mas mabilis na mga disk (mga SSD sa halip na mga HDD)
- Ipatupad ang mga pagsasaayos ng RAID para sa mas mahusay na pagganap
- Paghiwalayin ang mga file ng database, mga log ng transaksyon, at tempdb sa iba't ibang mga pisikal na drive
- Magdagdag ng higit pang memorya upang bawasan ang mga pagbasa sa disk
- I-optimize ang mga index upang bawasan ang hindi kinakailangang I/O
- Suriin at i-optimize ang mga query na hindi maganda ang performance
10.4 Pagtugon sa Pagharang at Mga Deadlock
Ang pagharang ay nangyayari kapag ang isang session ay may mga kandado na pumipigil sa iba pang mga session na magpatuloy. Subaybayan ang mga counter na ito upang matukoy ang mga isyu sa pagharang:
- Na-block ang Mga Proseso: Dapat ay 0
- Lock Waits/seg: Bilang ng mga kahilingan sa lock na nangangailangan ng paghihintay
- Average na Oras ng Paghihintay: Average na tagal ng paghihintay sa lock
Upang imbestigahan ang pagharang:
- Buksan ang Monitor ng Aktibidad sa SSMS
- Palawakin ang Mga Proseso seksyon
- Maghanap ng mga prosesong may non-zero Na-block Ni halaga
- Tukuyin ang blocking session ID
- Suriin ang mga query na nagdudulot ng pagharang
Gumamit ng sp_WhoIsActive para sa mas detalyadong pagsusuri sa pagharang. Ang sobrang wait_info na mga entry ay kadalasang nagpapahiwatig ng tempdb contention o pag-block ng mga isyu.
Upang bawasan ang pagharang:
- Bawasan ang tagal ng transaksyon
- Gumamit ng naaangkop na antas ng paghihiwalay
- Magdagdag ng mga index upang bawasan ang tagal ng lock
- Isaalang-alang ang READ_COMMITTED_SNAPSHOT na paghihiwalay
- Suriin at i-optimize ang matagal nang mga query
10.5 Mga Isyu sa Pagganap ng Query
Ang pagtukoy sa mga mamahaling query ay mahalaga para sa pagsubaybay sa pagganap ng SQL. Gamitin ang mga paraang ito upang maghanap ng mga may problemang query:
Paggamit ng Activity Monitor
- Sa SSMS, i-right-click ang pangalan ng server
- piliin Aktibo Monitor
- Lumawak Mga Kamakailang Mamahaling Query
- Suriin ang mga query na may mataas na CPU, tagal, o lohikal na pagbabasa
Paggamit ng mga DMV
Query sys.dm_exec_query_stats upang matukoy ang mga query na masinsinang mapagkukunan:
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
Pagsusuri ng mga Plano sa Pagpapatupad
- Sa SSMS, magbukas ng bagong query window
- I-click ang Ipakita ang Tinantyang Plano ng Pagpapatupad (Ctrl+L) o Isama ang Aktwal na Plano sa Pagpapatupad (Ctrl+M)
- Isagawa ang iyong query
- Suriin ang plano ng pagpapatupad para sa mga mamahaling operasyon
- Maghanap ng mga table scan, index scan, o mga operasyong may mataas na gastos
I-optimize ang mga query sa pamamagitan ng:
- Pagdaragdag ng mga naaangkop na index
- Muling pagsusulat ng mga query upang maiwasan ang mga mamahaling operasyon
- Ina-update ang mga istatistika
- Paggamit ng mga partikular na pangalan ng column sa halip na SELECT *
- Pag-iwas sa mga hindi kinakailangang DISTINCT o ORDER BY clause
10.6 Tuklasin at Ayusin ang Sirang Database
Ang katiwalian sa database ay maaaring magdulot ng pagkasira ng pagganap, pagkawala ng data, at pagkabigo ng system. Ang mabilis na pagtuklas at pagtugon sa katiwalian ay kritikal para sa pagpapanatili ng kalusugan ng database.
Mga Tagapahiwatig ng Korupsyon sa Database
Abangan ang mga palatandaang ito ng potensyal na katiwalian:
- Mga mensahe ng error sa SQL Server log ng error (error 823, 824, o 825)
- Mga hindi inaasahang error sa application kapag ina-access ang mga partikular na talahanayan
- Mabagal na pagganap ng query sa mga dating mabilis na query
- SQL Server mga pag-crash o hindi inaasahang pag-restart
- Ang mga pinaghihinalaang pahina ay lumalabas sa talahanayan ng msdb.dbo.suspect_pages
Gamit ang DBCC CHECKDB para sa Detection
DBCC CHECKDB ay ang pangunahing tool para sa pag-detect ng katiwalian sa database. Patakbuhin ito nang regular para maagang mahuli ang mga isyu.
Pagsubaybay sa Mga Pahina ng Hinala
SQL Server awtomatikong nagtatala ng mga pinaghihinalaang pahina sa database ng 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)
Ang anumang mga row na ibinalik ay nagpapahiwatig ng mga isyu sa katiwalian na nangangailangan ng agarang atensyon.
Mga Istratehiya sa Pag-iwas sa Korapsyon
- Paganahin ang pag-verify ng pahina gamit ang opsyong CHECKSUM
- Panatilihin ang mga regular na backup ng database
- Gumamit ng maaasahang hardware na may pagwawasto ng error
- Subaybayan ang kalusugan ng disk gamit ang mga tool ng tagagawa
- Mag-iskedyul ng mga regular na pagtakbo ng DBCC CHECKDB
- Panatilihin SQL Server na-update gamit ang pinakabagong mga patch
Mga Opsyon sa Pagbawi at Pag-aayos
Kung may nakitang mga katiwalian, maaari mong subukan ang built-in na tool DBCC CHECKDB upang ayusin ang mga ito. Kung nabigo, gumamit ng mga tool ng third-party gaya ng DataNumen SQL Recovery na maaaring humarap sa matinding katiwalian.
11. Mga Advanced na Teknik sa Pagsubaybay
11.1 Pagsubaybay sa Query Store
Query Store, ipinakilala sa SQL Server 2016, awtomatikong kumukuha ng data ng pagganap ng query. Nagbibigay ito ng mahahalagang insight sa pag-uugali ng query, mga plano sa pagpapatupad, at mga uso sa pagganap.
Paganahin ang Query Store
- Sa SSMS Object Explorer, i-right-click ang isang database
- piliin Mga Katangian
- I-click ang Tindahan ng Query pahina
- In Operation Mode (Hinihiling), piliin Basa sulat
- I-configure ang mga karagdagang setting kung kinakailangan
- I-click ang OK
Pagsubaybay sa Pagganap ng Query
I-access ang mga ulat sa Query Store sa pamamagitan ng Object Explorer:
- Palawakin ang database sa Object Explorer
- Lumawak Tindahan ng Query
- Pumili mula sa mga available na ulat:
- Regressed Query
- Pangkalahatang Pagkonsumo ng Resource
- Nangungunang Mga Query sa Pagkonsumo ng Resource
- Mga Tanong na May Sapilitang Plano
- Mga Sinusubaybayang Query
Plano ng Regression Detection
Awtomatikong nade-detect ng Query Store kapag nagbago ang mga plano sa pagpapatupad ng query at bumababa ang performance. Suriin ang ulat ng Regressed Query para matukoy ang mga query na apektado ng mga pagbabago sa plano.
Sapilitang Pamamahala ng Plano
Kapag natukoy ng Query Store ang isang mas mahusay na plano sa pagpapatupad, puwersahin SQL Server gamitin ito:
- Buksan ang query sa Query Store
- I-right-click ang gustong plano
- piliin Force Plan
Agad nitong pinapabuti ang pagganap nang hindi nangangailangan ng mga pagbabago sa code.
11.2 Pagsubaybay sa Pagpapanatili ng Index
Ang fragmentation ng index ay nagpapababa sa pagganap ng query sa paglipas ng panahon. Regular na subaybayan at panatilihin ang mga index upang matiyak ang pinakamainam na pagganap.
Pagsusuri ng Fragmentation
Gamitin ang query na ito upang suriin ang fragmentation ng index:
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
Patakbuhin ang query na ito sa mga oras na wala sa peak dahil maaari itong maging masinsinang mapagkukunan.
Pagsusuri sa Densidad ng Pahina
Ang density ng pahina ay nagpapahiwatig kung gaano kabuo ang mga pahina ng index. Ang mababang density ay nag-aaksaya ng espasyo at binabawasan ang pagganap:
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
Reorganize vs Rebuild Desisyon
Pumili ng mga pagpapatakbo ng pagpapanatili ng index batay sa mga antas ng fragmentation:
- Fragmentation 10-30%: Gamitin ang ALTER INDEX REORGANIZE
- Fragmentation > 30%: Gamitin ang ALTER INDEX REBUILD
- Fragmentation < 10%: Walang kinakailangang aksyon
Ang muling pag-aayos ng mga operasyon ay nangangailangan ng mas kaunting mga mapagkukunan at maaaring tumakbo online. Ang mga pagpapatakbo ng muling pagtatayo ay mas masinsinan ngunit gumagamit ng makabuluhang mapagkukunan.
11.3 Mga Update sa Istatistika ng Database
Nakakatulong ang mga istatistika ng database SQL ServerAng query optimizer ay lumikha ng mahusay na mga plano sa pagpapatupad. Ang mga hindi napapanahong istatistika ay humahantong sa hindi magandang pagganap ng query.
Awtomatikong Pagbubuo ng Istatistika
Paganahin ang mga awtomatikong pag-update ng istatistika:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Pagsubaybay sa Kalusugan ng Istatistika
Tingnan kung kailan huling na-update ang mga istatistika:
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
Manu-manong i-update ang mga istatistika kapag kinakailangan:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Pagkolekta ng Custom na Data ng Pagganap
Lumikha ng mga custom na solusyon sa pagsubaybay sa pagganap sa pamamagitan ng direktang pag-query sa sys.dm_os_performance_counters at pag-iimbak ng mga resulta sa mga talahanayan.
Paggawa ng Mga Custom na Koleksyon Script
Bumuo ng isang naka-imbak na pamamaraan upang mangolekta ng data ng counter ng pagganap:
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
Gamit ang sys.dm_os_performance_counters
Direktang mga counter ng pagganap ng query:
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
Pag-iimbak ng Makasaysayang Data
Gumawa ng talahanayan upang mag-imbak ng mga sukatan ng pagganap sa paglipas ng panahon:
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
Mga Pivoted na Paraan ng Pag-iimbak ng Data
Mag-imbak ng data sa pivoted na format na may isang row sa bawat sample na oras at isang column sa bawat counter. Binabawasan nito ang espasyo sa imbakan at pinapabuti ang pagganap ng query kumpara sa pag-iimbak ng isang row bawat counter bawat sample.
11.5 Multi-Server na Pagsubaybay
Para sa mga kapaligiran na may maramihang SQL Server mga pagkakataon, ipatupad ang sentralisadong pagsubaybay.
Sentralisadong Pamamaraan sa Pagsubaybay
- Lumikha ng nakalaang database ng pagsubaybay sa isang hiwalay na server
- Kolektahin ang data mula sa lahat ng mga server papunta sa central repository
- paggamit SQL Server Mga trabaho ng ahente upang magpatakbo ng mga script ng koleksyon
- Ipatupad ang pagkolekta ng counter ng performance na naa-access sa network
Pagmamanman ng Remote Server
I-configure ang Performance Monitor upang mangolekta ng data mula sa mga malalayong server sa pamamagitan ng pagtukoy ng mga pangalan ng server kapag nagdadagdag ng mga counter. Tiyaking pinapayagan ng mga panuntunan sa firewall ang trapiko ng Performance Monitor.
Pag-uulat sa Cross-Server
Bumuo ng mga ulat na naghahambing ng performance sa maraming server para matukoy ang mga outlier at imbalances sa kapasidad.
12. Pagsubaybay SQL Server sa Cloud Environments
12.1 Azure SQL Database Monitoring
Nagbibigay ang Azure SQL Database ng mga built-in na kakayahan sa pagsubaybay na naiiba sa nasa lugar SQL Server.
Pagsasama ng Azure Monitor
Awtomatikong kinokolekta ng Azure Monitor ang mga sukatan mula sa Azure SQL Database kasama ang:
- Paggamit ng DTU o vCore
- Paggamit ng imbakan
- Mga istatistika ng koneksyon
- Mga deadlock at timeout
I-access ang mga sukatang ito sa pamamagitan ng Azure Portal o Azure Monitor API.
Built-in na Mga Feature ng Pagsubaybay
Kasama sa Azure SQL Database ang:
- Mga rekomendasyon sa awtomatikong pag-tune
- Query Performance Insight
- Mga Intelligent na Insight para sa pagtuklas ng anomalya
- Built-in na alerto at diagnostics
Query Performance Insight
Nagbibigay ang feature na ito ng visualization ng mga nangungunang query na gumagamit ng mapagkukunan, pagsusuri sa tagal ng query, at mga trend ng dating performance. I-access ito sa pamamagitan ng Azure Portal sa ilalim ng iyong mapagkukunan ng SQL Database.
12.2 Cloud-Native Monitoring Tools
Nag-aalok ang mga cloud platform ng mga native na solusyon sa pagsubaybay na na-optimize para sa kanilang mga kapaligiran:
- Azure Monitor at Application Insights para sa Azure SQL Database
- AWS CloudWatch para sa RDS SQL Server
- Google Cloud Monitoring para sa Cloud SQL Server
Ang mga tool na ito ay walang putol na pinagsama sa cloud infrastructure at nagbibigay ng pinag-isang pagsubaybay sa lahat ng cloud resources.
Hybrid Environment Monitoring
Para sa mga hybrid na deployment na sumasaklaw sa mga nasasakupan at cloud, gumamit ng mga tool na sumusuporta sa parehong environment tulad ng Redgate SQL Monitor, SolarWinds DPA, o mga custom na solusyon gamit ang sentralisadong pangongolekta ng data.
12.3 Mga Pagkakaiba sa Pagganap sa Cloud
Ulap SQL Server Ang mga kapaligiran ay may mga natatanging katangian:
Mga Modelo ng Resource Allocation
Gumagamit ang mga cloud provider ng iba't ibang paraan ng paglalaan ng mapagkukunan (mga DTU, vCore, walang server) na nakakaapekto sa kung paano mo binibigyang kahulugan ang mga sukatan ng pagganap. Unawain ang mga limitasyon at katangian ng iyong tier ng serbisyo.
Mga Pagsasaalang-alang sa Pagsusukat
Nag-aalok ang mga cloud environment ng mga dynamic na kakayahan sa pag-scale. Subaybayan ang paggamit ng mapagkukunan upang matukoy kung kailan dapat pataasin o pababa. Maraming cloud platform ang nagbibigay ng awtomatikong pag-scale batay sa mga threshold ng performance.
13. Pag-automate ng Pagsubaybay sa Pagganap
13.1 SQL Server Mga Trabaho ng Ahente
I-automate ang pangongolekta ng data gamit ang SQL Server Mga trabahong ahente para sa pare-parehong pagsubaybay nang walang manu-manong interbensyon.
Naka-iskedyul na Pagkolekta ng Data
- Sa SSMS, palawakin SQL Server ahente
- I-right-click ang Trabaho at piliin ang Bagong trabaho
- Pangalanan ang trabaho (hal., "Kolektahin ang Mga Sukatan ng Pagganap")
- I-click ang Hakbang na at magdagdag ng bagong hakbang
- Itakda ang Uri sa Transact-SQL script
- Ilagay ang iyong script sa pangongolekta ng data
- I-click ang Iskedyul at magdagdag ng iskedyul
- I-configure ang dalas (hal., bawat 5 minuto)
- I-click ang OK upang lumikha ng trabaho
Awtomatikong Pag-uulat
Lumikha ng mga trabaho na bumubuo at nag-email ng mga ulat sa pagganap:
- Gumawa ng nakaimbak na pamamaraan na bumubuo ng mga ulat
- Gamitin ang Database Mail upang magpadala ng mga ulat sa pamamagitan ng email
- Mag-iskedyul ng trabaho upang tumakbo araw-araw o lingguhan
13.2 PowerShell Automation
Nagbibigay ang PowerShell ng malakas na kakayahan sa automation para sa SQL Server monitor ng pagganap.
Performance Counter Collection Scripts
$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
Mga Tanong sa WMI
Gamitin ang WMI upang mangolekta ng data ng pagganap mula sa mga malalayong server:
$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"
Awtomatikong Pag-alerto
Lumikha ng mga script ng PowerShell na sumusuri ng mga sukatan at nagpapadala ng mga alerto kapag nalabag ang mga limitasyon:
$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 Paglikha ng Mga Dashboard sa Pagsubaybay
I-visualize ang data ng performance gamit ang mga interactive na dashboard para sa mas magagandang insight.
Pagsasama ng Power BI
- Ikonekta ang Power BI sa iyong mga talahanayan ng data ng pagganap
- Gumawa ng mga visualization para sa mga pangunahing sukatan
- Magdagdag ng mga slicer para sa hanay ng oras at pagpili ng server
- Mag-publish ng mga dashboard sa Power BI Service
- I-configure ang mga iskedyul ng awtomatikong pag-refresh
Real-time na Paglikha ng Dashboard
Gumamit ng mga tool tulad ng Grafana o mga custom na web application para gumawa ng mga real-time na dashboard na direktang nagtatanong sa mga DMV at performance counter.
Makasaysayang Trend Visualization
Bumuo ng mga line chart na nagpapakita ng mga trend sa paglipas ng panahon para sa:
- Paggamit ng CPU
- Paggamit ng memory
- Disk I/O
- Pagganap ng query
- Bilang ng koneksyon
14. Pag-aaral ng Kaso at Mga Praktikal na Halimbawa
14.1 Pag-aaral ng Kaso: Paglutas ng Presyon ng Memorya
Pagkilala sa Sintomas
Isang produksyon SQL Server nakaranas ng mabagal na oras ng pagtugon sa query sa mga oras ng peak. Nagreklamo ang mga user tungkol sa mga timeout ng application at nasiraan ng performance.
Counter Analysis
Inihayag ang data ng Performance Monitor:
- Bumaba ang Pag-asa sa Buhay ng Pahina sa 50 segundo (normal: >300)
- Buffer Cache Hit Ratio ay bumaba sa 85% (normal: >99%)
- Ang Memory Grants na Nakabinbin ay madalas na nagpakita ng mga halaga na 5-10
- Malaki ang pagtaas ng Physical Disk Reads/seg
Mga Hakbang sa Paglutas
- Sinuri SQL Server max memory setting – natuklasang nakatakda ito sa default (walang limitasyon)
- Sinuri ang Total Server Memory vs Target Server Memory – nagpakita ng malaking agwat
- Na-configure ang max na memorya ng server upang mag-iwan ng 8 GB para sa operating system
- Pinagana ang pahintulot na "I-lock ang Mga Pahina sa Memorya" para sa SQL Server account ng serbisyo
- Nagdagdag ng 32 GB na karagdagang RAM sa server
- Sinusubaybayan ang pagganap sa loob ng isang linggo – Ang Pag-asa sa Buhay ng Pahina ay na-stabilize nang higit sa 500 segundo
Resulta: Ang mga oras ng pagtugon sa query ay bumuti ng 60%, huminto ang mga reklamo ng user, at bumalik sa normal ang performance ng application.
14.2 Pag-aaral ng Kaso: Pag-optimize ng Pagganap ng CPU
Pagkilala sa Sintomas
A SQL Server patuloy na nagpakita ng paggamit ng CPU nang higit sa 90% sa mga oras ng negosyo, na nagdulot ng mabagal na pagganap ng application at pagkabigo ng user.
Counter Analysis
Inihayag ang pagsubaybay sa pagganap:
- % Ang Oras ng Processor ay nag-average ng 92% na may mga madalas na pagtaas sa 100%
- Ang haba ng pila ng processor ay patuloy na higit sa 4 (ang server ay may 8 core)
- Ang SQL Compilations/seg ay 25% ng Batch Requests/seg (dapat <10%)
- Ang SQL Re-Compilations/seg ay 15% ng Batch Requests/seg
Mga Hakbang sa Paglutas
- Gumamit ng mga DMV upang matukoy ang mga nangungunang query na gumagamit ng CPU
- Sinuri ang mga plano sa pagpapatupad para sa mga natukoy na query
- Nakatuklas ng maraming pag-scan ng talahanayan sa malalaking talahanayan dahil sa mga nawawalang index
- Gumawa ng mga naaangkop na index batay sa mga rekomendasyon sa plano sa pagpapatupad
- Natukoy ang dynamic na SQL na nagdudulot ng labis na mga compilation
- Binagong application code para gumamit ng mga parameterized na query
- Ipinatupad na gabay sa plano para sa mga may problemang nakaimbak na pamamaraan
- Na-update na mga istatistika sa mga mesa na madalas na ginagamit
Resulta: Bumaba sa 45% average ang paggamit ng CPU sa mga oras ng negosyo. Ang mga oras ng pagpapatupad ng query ay napabuti ng 70%. Kapansin-pansing napabuti ang pagtugon sa application.
14.3 Pag-aaral ng Kaso: Disk I/O Bottleneck Resolution
Pagkilala sa Sintomas
Ang mga user ay nag-ulat ng napakabagal na pagtugon sa application sa panahon ng mga operasyon ng paglo-load ng data at pagproseso ng batch sa gabi.
Counter Analysis
Nagpakita ang data ng pagganap:
- Avg. Ang disk sec/Write ay lumampas sa 45ms sa transaction log drive
- Ang Haba ng Disk Queue ay may average na 12 sa data file drive
- % Ang Oras ng Disk ay nanatili sa itaas ng 95% para sa mga oras sa panahon ng mga batch na trabaho
- Napakataas ng Page Writes/sec
Mga Hakbang sa Paglutas
- Angkop ang mga na-verify na setting ng memory – walang nakitang mga isyu sa memorya
- Nasuri ang pagsasaayos ng disk – natuklasan ang lahat ng mga file sa parehong set ng spindle
- Pinaghiwalay ang mga log ng transaksyon sa mga nakalaang mabilis na SSD drive
- Inilipat ang tempdb sa paghiwalayin ang mga SSD drive
- Nagpatupad ng maramihang tempdb data file (isa sa bawat core)
- Na-upgrade ang data file drive sa RAID 10 SSD configuration
- Mga na-optimize na batch job para gumamit ng mas maliliit na batch ng transaksyon
- Nagdagdag ng mga index upang bawasan ang mga hindi kinakailangang pag-scan sa talahanayan sa panahon ng mga operasyon ng batch
Resulta: Avg. Bumaba sa 3ms ang disk sec/Write. Ang Haba ng Disk Queue ay na-average sa ibaba 1. Nabawasan ng 75% ang oras ng pagkumpleto ng batch na trabaho.
15. Mga Trend sa Hinaharap SQL Server Pagsubaybay
15.1 Pagsasama ng AI at Machine Learning
Nagbabago ang artificial intelligence at machine learning SQL Server monitor ng pagganap.
Predictive Analytics
Ang mga modelo ng machine learning ay hinuhulaan ang mga pangangailangan ng mapagkukunan sa hinaharap batay sa dating data. Maaaring hulaan ng mga system na ito ang:
- Kapag ang kapasidad ng imbakan ay mauubos
- Inaasahang kinakailangan ng CPU at memory sa mga peak period
- I-query ang pagbaba ng performance bago ito makaapekto sa mga user
- Pinakamainam na oras para sa mga pagpapatakbo ng pagpapanatili
Anomaly Detection
Ang mga tool na hinimok ng AI ay awtomatikong nakakakita ng mga hindi pangkaraniwang pattern sa mga sukatan ng pagganap. Tinutukoy nila ang mga anomalya na maaaring makaligtaan at makilala ng mga administrador ng tao sa pagitan ng mga normal na pagkakaiba-iba at mga tunay na isyu.
Automated Remediation
Awtomatikong nireresolba ng mga self-healing system ang mga karaniwang isyu kapag natukoy:
- I-restart ang mga serbisyong tumigil na
- I-relocate ang mga mapagkukunan sa panahon ng peak load
- Ilapat ang mga hotfix para sa mga kilalang isyu
- Awtomatikong buuin muli ang mga pira-pirasong index
15.2 Cloud-Based Monitoring Evolution
Ang pagsubaybay sa cloud ay patuloy na umuunlad na may mga bagong kakayahan.
Pinag-isang Mga Platform sa Pagsubaybay
Nagbibigay ang mga modernong platform ng single-pane-of-glass visibility sa:
- Mga nasa nasasakupang lugar SQL Server mga pagkakataon
- Mga database na naka-host sa cloud
- Mga hybrid na kapaligiran
- Pagganap ng aplikasyon
- Mga sukatan ng imprastraktura
Mga Uso sa Pagmamasid
Ang paglipat mula sa pagsubaybay tungo sa pagmamasid ay binibigyang-diin ang:
- Pag-unawa sa pag-uugali ng system mula sa mga output
- Iniuugnay ang mga sukatan, log, at bakas
- Mga malalim na insight sa mga distributed system
- Real-time na diagnosis ng problema
15.3 Self-Healing Database System
Hinaharap SQL Server ang mga bersyon ay magsasama ng higit pang mga autonomous na kakayahan.
Awtomatikong Pag-optimize
Patuloy na ino-optimize ng mga database ang kanilang mga sarili sa pamamagitan ng:
- Awtomatikong paggawa at pag-drop ng mga index batay sa workload
- Pagsasaayos ng mga setting ng configuration para sa pinakamainam na pagganap
- Malinaw na muling pagsusulat ng mga hindi mahusay na query
- Pamamahala ng resource allocation nang pabago-bago
Matalinong Pag-tune
Matututo ang mga advanced na system mula sa mga pattern ng pagganap at awtomatikong maglalapat ng mga rekomendasyon sa pag-tune, na binabawasan ang pangangailangan para sa manu-manong interbensyon ng DBA.
16. Konklusyon at Mga Pangunahing Takeaway
16.1 Buod ng Mahahalagang Kasanayan sa Pagsubaybay
Mabisa SQL Server Ang monitor ng pagganap ay nangangailangan ng isang komprehensibong diskarte na pinagsasama ang mga tool, diskarte, at pinakamahusay na kasanayan.
Recap ng mga Kritikal na Counter
Ituon ang mga pagsisikap sa pagsubaybay sa mahahalagang counter na ito:
- Memorya: Pag-asa sa Buhay ng Pahina, Buffer Cache Hit Ratio, Memory Grants Nakabinbin
- CPU: % Oras ng Processor, Haba ng Queue ng Processor
- Disk: Avg. Disk sec/Magbasa at Magsulat, Haba ng Piye ng Disk
- SQL Server: Mga Batch na Kahilingan/seg, Compilation/seg, Mga Koneksyon ng User
Buod ng Pinakamahusay na Kasanayan
- Magtatag ng mga baseline sa panahon ng normal na operasyon
- Magtakda ng mga matalinong limitasyon ng alerto batay sa mga baseline
- Regular na suriin ang data ng pagganap
- Balansehin ang overhead ng pagsubaybay na may granularity ng data
- Panatilihin ang pangmatagalang data para sa pagsusuri ng trend
- Gumamit ng mga naaangkop na tool para sa bawat senaryo ng pagsubaybay
16.2 Diskarte sa Patuloy na Pagpapabuti
SQL Server Ang monitor ng pagganap ay hindi isang beses na aktibidad ngunit isang patuloy na proseso na nangangailangan ng patuloy na pagpipino.
Mga Regular na Ikot ng Pagsusuri
- Araw-araw: Suriin ang mga alerto at kasalukuyang pagganap
- Lingguhan: Suriin ang mga uso at tukuyin ang mga umuusbong na isyu
- Buwan-buwan: Suriin ang mga pangmatagalang pattern at mga pangangailangan sa kapasidad
- Quarterly: I-update ang mga baseline at suriin ang pagiging epektibo ng pagsubaybay
Manatiling Kasalukuyan gamit ang Mga Tool
Panatilihing napapanahon ang mga tool at diskarte sa pagsubaybay:
- Suriin ang mga bagong tampok sa pagsubaybay sa SQL Server Update
- Subukan ang mga umuusbong na tool ng third-party
- Dumalo sa pagsasanay at mga kumperensya
- Lumahok sa mga SQL Server mga forum ng komunidad
- Magbahagi ng kaalaman sa mga miyembro ng koponan
16.3 Mga Susunod na Hakbang
Isakatuparan SQL Server sistematikong sinusubaybayan ang pagganap:
Roadmap ng Pagpapatupad
- Linggo 1: I-set up ang Performance Monitor na may mahahalagang counter
- Linggo 2: Lumikha ng Mga Set ng Data Collector para sa awtomatikong pagkolekta
- Linggo 3: Magtatag ng mga baseline sa panahon ng normal na operasyon
- Linggo 4: I-configure ang mga alerto para sa mga kritikal na threshold
- Buwan 2: Magpatupad ng mga karagdagang tool sa pagsubaybay (DMVs, Extended Events)
- Buwan 3: Bumuo ng mga custom na dashboard at ulat
- Patuloy: Pinuhin ang pagsubaybay batay sa karanasan at pagbabago ng mga kinakailangan
Karagdagang Mapagkukunan ng Impormasyon
Ipagpatuloy ang pag-aaral tungkol sa SQL Server monitor ng pagganap sa pamamagitan ng dokumentasyon ng Microsoft, mga blog ng komunidad, at kasanayan sa hands-on. Mag-eksperimento sa iba't ibang mga tool at diskarte upang mahanap kung ano ang pinakamahusay na gumagana para sa iyong kapaligiran.
17. Mga Madalas Itanong (FAQ)
17.1 Ano ang mga pinakamahalaga SQL Server mga counter ng pagganap upang masubaybayan?
Ang pinaka kritikal SQL Server Kasama sa mga counter ng pagganap ang:
- Memorya: Pag-asa sa Buhay ng Pahina (dapat ay >300 segundo) at Buffer Cache Hit Ratio (dapat ay >99%)
- CPU: % Oras ng Processor (mga sustained value <75%) at Haba ng Queue ng Processor (dapat <2 bawat core)
- Disk: Avg. Disk sec/Read and Write (dapat ay <10-20ms) at Disk Queue Length (dapat <2 per disk)
- SQL Server: Mga Batch na Kahilingan/seg, SQL Compilations/seg, at Memory Grants Nakabinbin (dapat ay 0)
Nagbibigay ang mga counter na ito ng komprehensibong insight sa kalusugan ng system at tumutulong na mabilis na matukoy ang mga bottleneck.
17.2 Gaano kadalas ako dapat mangolekta ng data ng pagganap?
Ang dalas ng koleksyon ay depende sa iyong mga layunin sa pagsubaybay:
- Baseline monitoring: Bawat 1 minuto (60 segundo)
- Aktibong pag-troubleshoot: Bawat 15-30 segundo para sa maikling panahon
- Pangmatagalang trending: Bawat 5 minuto
Iwasan ang patuloy na pagpapatakbo ng high-frequency na koleksyon dahil maaari itong makaapekto sa performance at makabuo ng labis na data. Gumamit ng mas mahabang agwat para sa regular na pagsubaybay at mas maiikling agwat lamang kapag nagsisiyasat ng mga partikular na isyu.
17.3 Ano ang pagkakaiba sa pagitan ng Performance Monitor at SQL Server Profiler?
Performance Monitor at SQL Server Ang profileer ay nagsisilbi sa iba't ibang layunin:
Monitor ng Pagganap:
- Monitor system at SQL Server mga counter ng pagganap
- Sinusubaybayan ang paggamit ng mapagkukunan (CPU, memorya, disk)
- Mababang overhead, na angkop para sa patuloy na pagsubaybay
- Nagbibigay ng pinagsama-samang sukatan sa paglipas ng panahon
SQL Server profiler:
- Mga bakas ng indibidwal SQL Server mga kaganapan at tanong
- Kinukuha ang detalyadong impormasyon sa pagpapatupad ng query
- Mas mataas na overhead, hindi inirerekomenda para sa patuloy na paggamit
- Pinakamahusay para sa pag-troubleshoot ng mga partikular na isyu sa query
- Hindi na ginagamit pabor sa Mga Pinalawak na Kaganapan
Gamitin ang Performance Monitor para sa pangkalahatang pagsubaybay sa system at Mga Pinalawak na Kaganapan (hindi Profiler) para sa detalyadong pagsusuri sa antas ng query.
17.4 Maaapektuhan ba ang Performance Monitor SQL Server pagganap?
Kapag na-configure nang maayos, ang Performance Monitor ay may kaunting epekto sa SQL Server pagganap, karaniwang mas mababa sa 2% overhead. Gayunpaman, ang labis na pagsubaybay ay maaaring magdulot ng mga isyu:
- Masyadong maraming counter ang tumataas sa itaas
- Napakaikling mga agwat ng sample (wala pang 15 segundo) mga mapagkukunan ng strain
- Ang patuloy na pagkolekta ng mataas na dalas ay bumubuo ng malalaking log file
Para mabawasan ang epekto:
- Subaybayan lamang ang mga kinakailangang counter
- Gumamit ng naaangkop na mga agwat ng sample (60 segundo para sa regular na pagsubaybay)
- Mag-imbak ng mga log sa mga drive na hiwalay sa mga file ng database
- Mag-iskedyul ng resource-intensive na pagsubaybay sa oras ng off-peak hours
17.5 Gaano katagal ko dapat panatilihin ang data ng pagsubaybay sa pagganap?
Ang pagpapanatili ay nakasalalay sa iyong mga pangangailangan sa pagsusuri at kapasidad ng imbakan:
- Minimum: 3 buwan para sa pag-troubleshoot ng mga kamakailang isyu
- Inirerekomenda: 1-2 taon para sa pagpaplano ng kapasidad at pagtatasa ng trend
- Pinakamainam: Walang katiyakan kung pinahihintulutan ang imbakan, dahil ang makasaysayang data ay nagiging mas mahalaga sa paglipas ng panahon
Ang data ng counter ng pagganap ay mahusay na na-compress at kumokonsumo ng medyo maliit na espasyo. Isaalang-alang ang pag-archive ng mas lumang data upang paghiwalayin ang storage sa halip na tanggalin ito. Natuklasan ng maraming organisasyon na ang mga taon ng makasaysayang data ay nagpapatunay na napakahalaga para sa pagpaplano ng kapasidad at pagtukoy ng mga pangmatagalang uso.
17.6 Ano ang magandang mga halaga ng threshold para sa mga pangunahing counter ng pagganap?
Inirerekomendang mga halaga ng threshold para sa pag-aalerto:
- Memory Grants Nakabinbin: Alerto kapag > 0
- Page Life Expectancy: Alerto kapag < 300 segundo
- % Oras ng Processor: Alerto kapag > 80% sa loob ng 5 minuto
- Haba ng Pila ng Processor: Alerto kapag > 2 bawat core
- Avg. Disk sec/Basahin o Sumulat: Alerto kapag > 20ms
- Haba ng Disk Queue: Alerto kapag > 2 bawat disk
- Mga Na-block na Proseso: Alerto kapag > 5
Isaayos ang mga limitasyong ito batay sa iyong baseline data at mga partikular na katangian ng workload. Ang normal para sa isang kapaligiran ay maaaring magpahiwatig ng mga problema sa isa pa.
17.7 Paano ko susubaybayan SQL Server pagganap sa malayo?
Subaybayan ang remote SQL Server mga pagkakataon gamit ang mga pamamaraang ito:
- Monitor ng Pagganap: Tukuyin ang remote na pangalan ng computer kapag nagdadagdag ng mga counter
- Power shell: Gamitin ang parameter na -ComputerName sa Get-Counter
- Mga DMV: Kumonekta sa mga malalayong server sa pamamagitan ng SSMS at mag-query ng mga DMV
- Mga tool ng third-party: Karamihan sa mga tool sa pagsubaybay ay sumusuporta sa remote server monitoring
Tiyaking pinapayagan ng mga panuntunan sa firewall ang trapiko ng Performance Monitor at mayroon kang naaangkop na mga pahintulot sa remote server. Para sa maramihang mga server, isaalang-alang ang pagpapatupad ng sentralisadong pagsubaybay na may nakalaang monitoring server at database.
17.8 Para saan ang pinakamahusay na libreng tool SQL Server monitor ng performance?
Maraming mahusay na libreng tool ang magagamit para sa pagsubaybay SQL Server pagganap:
- Windows Performance Monitor: Built-in, komprehensibo, at maaasahan
- Monitor ng Aktibidad ng SSMS: Real-time na pagsubaybay na walang karagdagang pag-install
- Mga Pinalawak na Kaganapan: Naka-built in ang lightweight na pagsubaybay sa kaganapan SQL Server
- sp_WhoIsActive: Mga sikat na libreng nakaimbak na pamamaraan para sa detalyadong pagsubaybay sa aktibidad
- Dash ng DBA: Open-source monitoring tool na may komprehensibong feature
- SQLWATCH: Open-source na may malapit na real-time na mga kakayahan sa pagsubaybay
Para sa karamihan ng mga organisasyon, ang Performance Monitor na sinamahan ng mga SSMS tool at sp_WhoIsActive ay nagbibigay ng mahusay na kakayahan sa pagsubaybay nang walang karagdagang bayad.
17.9 Paano ko ie-export ang data ng PerfMon para sa pagsusuri?
I-export ang data ng Performance Monitor gamit ang mga pamamaraang ito:
I-export sa CSV:
- Buksan ang Performance Monitor nang na-load ang iyong log file
- I-right-click ang graph at piliin I-save ang Data Bilang
- Piliin Text File (Comma delimited) (.csv)
- Pumili ng lokasyon at i-save
- Buksan sa Excel para sa pagsusuri
Gamitin ang Relog Command:
relog input.blg -f csv -o output.csv
Kino-convert ng command-line utility na ito ang mga binary log file (.blg) sa CSV na format para sa mas madaling pagsusuri sa mga application ng spreadsheet.
17.10 Kailan ko dapat gamitin ang mga tool sa pagsubaybay ng third-party sa halip na mga built-in na opsyon?
Isaalang-alang ang mga tool ng third-party kapag:
- Pamamahala ng malaking bilang ng SQL Server instance (10+)
- Nangangailangan ng sentralisadong pagsubaybay sa maraming data center
- Nangangailangan ng mga advanced na feature tulad ng predictive analytics o anomaly detection
- Gusto ng pinagsamang alerto sa mga sistema ng pamamahala ng insidente
- Nangangailangan ng pag-uulat ng pagsunod at pagsusuri sa kasaysayan
- Kulang sa mga mapagkukunan ng DBA upang bumuo at magpanatili ng mga custom na solusyon
- Pagsubaybay sa magkakaibang kapaligiran ng database (SQL Server, Oracle, MySQL, atbp.)
Gumagana nang maayos ang mga built-in na tool para sa mas maliliit na kapaligiran o kapag mayroon kang mga bihasang DBA na maaaring bumuo ng mga custom na solusyon sa pagsubaybay. Nagbibigay ng halaga ang mga third-party na tool sa pamamagitan ng pagtitipid sa oras, advanced na feature, at propesyonal na suporta.
18. Karagdagang Mga Mapagkukunan
18.1 Opisyal na Dokumentasyon
Nagbibigay ang Microsoft ng malawak na dokumentasyon para sa SQL Server monitor ng pagganap:
- SQL Server Dokumentasyon ng Performance Monitor: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Mga Dynamic na Pagtingin sa Pamamahala: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Mga Pinalawak na Kaganapan: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Tindahan ng Tanong: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Pag-tune at pagsubaybay sa pagganap: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Inirerekomendang Mga Tool at Download
Mahahalagang kasangkapan para sa SQL Server monitor ng pagganap:
- Tool ng PAL: https://github.com/clinthuffman/PAL
- sp_WhoIsActive: http://whoisactive.com/
- Dash ng DBA: https://dbadash.com/
- SQLWATCH: https://github.com/marcingminski/sqlwatch
- First Responder Kit (Brent Ozar): https://www.brentozar.com/first-aid/
- SQL Server Management Studio: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
18.3 Mga Mapagkukunan ng Komunidad
Alamin mula sa SQL Server pamayanan:
- SQL Server Central: https://www.sqlservercentral.com/
- Brent Ozar Blog: https://www.brentozar.com/blog/
- SQL Shack: https://www.sqlshack.com/
- Mga Tip sa MSSQLT: https://www.mssqltips.com/
- Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
- stack overflow SQL Server mga tag: https://stackoverflow.com/questions/tagged/sql-server
Nagbibigay ang mga mapagkukunang ito ng mga tutorial, payo sa pag-troubleshoot, at pinakamahuhusay na kagawian mula sa karanasan SQL Server mga propesyonal. Ang pakikilahok sa mga forum ng komunidad ay nakakatulong sa iyo na matuto mula sa mga karanasan ng iba at ibahagi ang iyong sariling kaalaman.
Tungkol sa Author
Yuan Sheng ay isang senior database administrator (DBA) na may higit sa 10 taong karanasan sa SQL Server kapaligiran at pamamahala ng database ng enterprise. Matagumpay niyang nalutas ang daan-daang mga sitwasyon sa pagbawi ng database sa mga serbisyong pinansyal, pangangalaga sa kalusugan, at mga organisasyon sa pagmamanupaktura.
Dalubhasa si Yuan sa SQL Server pagbawi ng database, mga solusyon na may mataas na availability, at pag-optimize ng pagganap. Kasama sa kanyang malawak na praktikal na karanasan ang pamamahala ng mga multi-terabyte na database, pagpapatupad Laging Nasa Availability Groups, at pagbuo ng mga awtomatikong estratehiya sa pag-backup at pagbawi para sa mga kritikal na sistema ng negosyo.
Sa pamamagitan ng kanyang teknikal na kadalubhasaan at praktikal na diskarte, nakatuon si Yuan sa paglikha ng mga komprehensibong gabay na tumutulong sa mga administrator ng database at mga propesyonal sa IT na malutas ang kumplikado SQL Server mga hamon nang mahusay. Nananatili siyang napapanahon sa pinakabago SQL Server mga release at mga umuunlad na teknolohiya ng database ng Microsoft, na regular na sumusubok sa mga senaryo sa pagbawi upang matiyak na ang kanyang mga rekomendasyon ay sumasalamin sa mga pinakamahusay na kagawian sa totoong mundo.
May mga katanungan tungkol sa SQL Server pagbawi o kailangan ng karagdagang gabay sa pag-troubleshoot ng database? bati ni Yuan puna at mungkahi para sa pagpapabuti ng mga teknikal na mapagkukunang ito.





























