Ipamahagi ngayon:
Talaan ng nilalaman itago

1. pagpapakilala

1.1 Ano ang SQL Server ActivityMonitor?

SQL Server Ang Activity Monitor ay isang built-in na diagostic tool sa loob SQL Server Management Studio na nagpapakita ng impormasyon tungkol sa SQL Server mga proseso at epekto nito sa pagganap ng server. Pinapayagan ka nitong subaybayan SQL Server mga proseso, subaybayan ang mga paghihintay sa mapagkukunan, pag-aralan ang mga mamahaling query, at pagmasdan ang mga pattern ng I/O—lahat mula sa isang interface.

SQL Server Aktibo Monitor

1.2 Bakit Gamitin SQL Server ActivityMonitor?

Ang Activity Monitor ay nagsisilbing iyong unang linya ng depensa kapag nag-troubleshoot ng mga problema sa performance. Nagbibigay ito ng agarang visibility sa kung ano ang nangyayari sa iyong SQL Server halimbawa nang hindi nangangailangan ng kumplikadong mga query sa T-SQL o mga tool ng third-party.

Ang tool ay mahusay sa pagtulong sa iyo na mabilis na matukoy ang mga karaniwang isyu tulad ng pagharang sa mga session, CPU-intensive na query, labis na pagpapatupad ng query, at I/O bottleneck. Kapag nag-ulat ang mga user na mabagal o hindi tumutugon ang isang application, tinutulungan ka ng Activity Monitor na matukoy kung ang database server ang may kasalanan.

Para sa mga administrator ng database na hindi gumagana SQL Server araw-araw, nag-aalok ang Activity Monitor ng isang accessible na entry point para sa pag-unawa sa aktibidad ng server. Kahit na ang mga nakaranasang DBA ay ginagamit ito bilang kanilang mga starpunto para sa mga pagsisiyasat sa pagganap.

1.3 Monitor ng Aktibidad kumpara sa Iba Pang Mga Tool sa Pagsubaybay

Bagama't mahalaga ang Activity Monitor, mahalagang maunawaan kung paano ito inihahambing sa iba pang mga opsyon sa pagsubaybay:

Monitor ng Aktibidad vs sp_WhoIsActive: Ang Activity Monitor ay nagbibigay ng graphical na interface na may maraming pane, habang ang sp_WhoIsActive ay isang komprehensibong stored procedure na nag-aalok ng mas detalyadong impormasyon sa isang set ng resulta. Ang sp_WhoIsActive ay nagpapakita ng mga partikular na uri ng paghihintay na pinagsama-sama ng Activity Monitor at nagbibigay ng mas detalyadong impormasyon sa pagharang.

Monitor ng Aktibidad vs sp_who2: Ang tradisyonal na sp_who2 command ay nagpapakita ng pangunahing impormasyon ng session, ngunit ang Activity Monitor ay nagpapatuloy sa pamamagitan ng pagpapakita ng mga istatistika ng paghihintay, mamahaling query, at I/O metrics sa isang organisado, visual na format.

Monitor ng Aktibidad vs Mga Tool ng Third-Party: Ang mga komersyal na solusyon sa pagsubaybay tulad ng SolarWinds Database Performance Analyzer ay nag-aalok ng makasaysayang pagsubaybay, pag-alerto, at advanced na analytics na kulang sa Activity Monitor. Gayunpaman, ang Activity Monitor ay hindi nangangailangan ng karagdagang cost o pag-install.

1.4 Mga Pangunahing Benepisyo para sa Mga Administrator ng Database

Nag-aalok ang Activity Monitor ng ilang pakinabang na ginagawa itong mahalagang tool ng DBA:

  • Zero Cost: Bilang isang built-in SQL Server Feature ng Management Studio, walang licensing fee o deployment effort na kailangan.
  • Pagsubaybay sa Real-Time: Tingnan ang kasalukuyang aktibidad ng server habang nangyayari ito, na may mga na-configure na agwat ng pag-refresh mula 1 segundo hanggang 1 oras.
  • Pinagsamang Mga Pagkilos: Mag-right-click sa mga proseso upang patayin ang mga session, tingnan ang mga detalye ng query, o ilunsad SQL Server Mga bakas ng profiler—lahat mula sa loob ng tool.
  • Maramihang Pananaw: Tingnan ang kalusugan ng server mula sa iba't ibang mga anggulo sa pamamagitan ng limang espesyal na pane, bawat isa ay tumutuon sa mga partikular na aspeto ng pagganap.
  • Mabilis na Pag-troubleshoot: Kilalanin ang most karaniwang mga problema sa pagganap sa loob ng ilang minuto, na nagpapabilis sa iyong karaniwang oras upang malutas.
  • Mababang Harang sa Pagpasok: Walang kinakailangang advanced na kaalaman upang masimulang gamitin ang tool nang epektibo, kahit na mas malalim SQL Server nakakatulong ang kadalubhasaan sa interpretasyon.

2. Pagkuha ng Started gamit ang Activity Monitor

Bago mo epektibong magamit ang Activity Monitor, kailangan mong maunawaan ang mga kinakailangan, kinakailangang pahintulot, at iba't ibang paraan para sa paglulunsad ng tool.

2.1 Mga Prerequisite at System Requirements

Upang gamitin ang SQL Server Monitor ng Aktibidad, kailangan mo SQL Server Management Studio (SSMS) na naka-install sa iyong lokal na makina o isang jump server. Ang tool ng Activity Monitor ay makabuluhang muling idinisenyo SQL Server 2008, kaya ang impormasyon sa gabay na ito ay naaangkop sa SQL Server 2008 at mga susunod na bersyon.

Dapat ay mayroon kang koneksyon sa network sa SQL Server halimbawa na gusto mong subaybayan. Para sa cloud-hosted database, karaniwang kailangan mo ng koneksyon sa VPN o maayos na na-configure na mga panuntunan sa firewall upang ma-access ang instance.

Activity Monitor gumagana sa lahat ng edisyon ng SQL Server, kabilang ang Express, Standard, at Enterprise. Ang tool mismo ay tumatakbo sa iyong client machine sa loob ng SSMS, kaya ang mga mapagkukunan ng server ay naaapektuhan lamang ng mga query sa pagsubaybay na isinasagawa nito.

2.2 Mga Kinakailangang Pahintulot

Ang mga wastong pahintulot ay mahalaga para gumana nang tama ang Activity Monitor. Kung wala ang mga naaangkop na karapatan, maaari kang makakita ng blangkong display o makatanggap ng mga error na tinanggihan ng access.

2.2.1 VIEW SERVER STATE Pahintulot

Ang TINGNAN ANG ESTADO NG SERVER Ang pahintulot ay ang pangunahing kinakailangan para sa paggamit ng Activity Monitor. Nagbibigay-daan sa iyo ang pahintulot sa antas ng server na ito na makita ang lahat ng aktibong proseso at ang mga nauugnay na sukatan nito.

Upang ibigay ang pahintulot na ito, maaaring isagawa ng isang administrator ng server ang:

GRANT VIEW SERVER STATE TO [YourLoginName];

Kung walang VIEW SERVER STATE, maaaring magbukas ang Activity Monitor ngunit walang data na ipinapakita sa alinman sa mga pane nito.

2.2.2 Mga Pahintulot sa Antas ng Database

Upang tingnan ang impormasyon sa panel ng I/O ng Data File, kailangan mo ng mga karagdagang pahintulot. Sa partikular, dapat mayroon kang isa sa mga sumusunod na kumbinasyon:

  • GUMAWA NG DATABASE pahintulot, o
  • BAGUHIN ANG ANUMANG DATABASE pahintulot, o
  • TINGNAN ANG ANUMANG DEPINISYON pahintulot

Ang mga pahintulot na ito ay dapat isama sa TINGNAN ANG ESTADO NG SERVER para sa buong paggana ng Activity Monitor.

2.2.3 Pag-troubleshoot ng Pahintulot

Kung magbubukas ang Monitor ng Aktibidad ngunit walang ipinapakitang data, ang mga pahintulot ay ang most karaniwang dahilan. Suriin na ang iyong pag-login ay may VIEW SERVER STATE na ibinigay sa antas ng server. Maaari mong i-verify ang iyong mga pahintulot sa pamamagitan ng pagpapatakbo ng:

SELECT * FROM fn_my_permissions(NULL, 'SERVER');

Hanapin ang 'VIEW SERVER STATE' sa column ng permission_name. Kung nawawala ito, makipag-ugnayan sa iyong database administrator upang maibigay ito.

2.3 Paano Buksan ang Monitor ng Aktibidad sa SSMS

SQL Server Nagbibigay ang Management Studio ng apat na magkakaibang paraan para ilunsad ang Activity Monitor, na nagbibigay sa iyo ng flexibility batay sa iyong mga kagustuhan sa workflow.

2.3.1 Paraan 1: Mula sa Toolbar

Ang pinakamabilis na paraan upang buksan ang Activity Monitor ay ang paggamit ng icon ng toolbar:

  1. Kumonekta sa iyong SQL Server halimbawa sa SQL Server Pamamahala ng Studio.
  2. Hanapin ang icon ng Activity Monitor sa karaniwang toolbar (ito ay kahawig ng bar chart na may berdeng play button).
  3. I-click ang icon para ilunsad ang Activity Monitor.

Start SQL Server Monitor ng Aktibidad mula sa icon ng toobar sa SQL Server Pamamahala ng Studio.

Ang pamamaraang ito ay pinakamabilis kapag nagtatrabaho ka na sa SSMS at kailangan mong mabilis na suriin ang aktibidad ng server.

2.3.2 Paraan 2: Mula sa Object Explorer

Maaari mo ring ilunsad ang Activity Monitor nang direkta mula sa Object Explorer:

  1. Sa Object Explorer, hanapin ang SQL Server halimbawa na gusto mong subaybayan.
  2. Mag-right click sa pangalan ng instance.
  3. piliin Aktibo Monitor mula sa menu ng konteksto.

Start SQL Server Monitor ng Aktibidad sa pamamagitan ng pag-right click sa instance sa Object Explorer in SQL Server Pamamahala ng Studio.

Kapaki-pakinabang ang pamamaraang ito kapag kumokonekta sa maraming server, dahil tinitiyak nitong sinusubaybayan mo ang tamang pagkakataon.

2.3.3 Paraan 3: Paggamit ng Keyboard Shortcut

Para sa mga user na nakatuon sa keyboard, SQL Server Nagbibigay ang Management Studio ng nakalaang shortcut:

  1. Tiyaking ang SSMS ang aktibong window at nakakonekta ka sa isang instance.
  2. pindutin Ctrl + Alt + A.
  3. Magbubukas ang Activity Monitor para sa kasalukuyang napiling instance sa Object Explorer.

Tandaan na ang Activity Monitor ay kumonekta sa alinmang server instance na iyong pinili sa Object Explorer, kaya tiyaking napili mo ang tamang instance bago gamitin ang shortcut na ito.

2.3.4 Paraan 4: Mula sa Options Menu (Startup Configuration)

Kung madalas mong ginagamit ang Activity Monitor, maaari mong i-configure ang SSMS upang awtomatikong ilunsad ito sa tuwing ikaw aytart ang aplikasyon:

  1. In SQL Server Management Studio, mag-navigate sa Kagamitan -> Options.
  2. Sa dialog box na Mga Opsyon, palawakin kapaligiran, At pagkatapos ay piliin ang Startubo.
  3. Mula sa Sa startubo dropdown na listahan, piliin Buksan ang Object Explorer at Activity Monitor.
  4. piliin OK.

Itakda ang startup configuration para sa SQL Server Monitor ng Aktibidad sa SQL Server Pamamahala ng Studio.

Sa susunod na ilunsad mo ang SSMS at kumonekta sa isang server, awtomatikong magbubukas ang Activity Monitor sa tabi ng Object Explorer.

3. Pag-unawa sa Activity Monitor Panes

Inaayos ng Activity Monitor ang impormasyon sa limang napapalawak na mga pane, bawat isa ay nagbibigay ng ibang pananaw sa aktibidad ng server. Ang pag-unawa sa kung ano ang ipinapakita ng bawat pane ay mahalaga para sa epektibong pag-troubleshoot.

3.1 Pane ng Pangkalahatang-ideya

Ang pane ng Pangkalahatang-ideya ay nagpapakita ng apat na real-time na mga graph na nagbibigay sa iyo ng isang mabilis na snapshot ng kalusugan ng iyong SQL Server halimbawa. Ang mga graph na ito ay nag-a-update sa isang na-configure na agwat at tinutulungan kang matukoy ang mga abnormal na pattern sa isang sulyap.

Ang Pane ng Pangkalahatang-ideya sa SQL Server Monitor ng Aktibidad.

3.1.1 % Oras ng Processor

Ipinapakita ng graph na ito ang porsyento ng oras na ginugugol ng processor sa pag-execute ng mga non-idle na thread para sa SQL Server halimbawa sa lahat ng mga CPU. Ang halaga ay kumakatawan SQL Serverpaggamit ng processor, hindi ang paggamit ng CPU ng buong server.

Kung palagi mong nakikita ang oras ng processor sa o malapit sa 100%, ang iyong server ay nakatali sa CPU. Ito ay maaaring magpahiwatig ng hindi mahusay na mga query, nawawalang mga index, o hindi sapat na kapasidad ng hardware. Gamitin ang pane ng Recent Expensive Query upang matukoy kung aling mga query ang gumagamit ng most CPU.

3.1.2 Mga Paghihintay na Gawain

Ipinapakita ng sukatang ito ang bilang ng mga gawain na naghihintay na mailabas ang mga mapagkukunan bago sila makapagpatuloy. Maaaring maghintay ang mga gawain para sa CPU, I/O, memory, o mga lock.

Ang patuloy na mataas na bilang ng mga gawaing naghihintay ay nagpapahiwatig ng pagtatalo sa mapagkukunan. Ang Resource Waits pane ay nagbibigay ng higit pang detalye tungkol sa kung anong mga uri ng mapagkukunan ang nagdudulot ng mga paghihintay.

3.1.3 Database I/O (MB/s)

Ipinapakita ng graph na ito ang rate ng paglipat ng data sa pagitan ng memory at disk. Pinagsasama nito ang parehong pagbabasa at pagsusulat, na sinusukat sa megabytes bawat segundo.

Ang mga spike sa database I/O ay maaaring magpahiwatig ng mga query na nagsasagawa ng malalaking pag-scan ng talahanayan, labis na aktibidad sa pag-log, o mga operasyon ng checkpoint. Pinaghihiwa-hiwalay ng panel ng I/O ng Data File ang aktibidad ng I/O ayon sa database at file.

3.1.4 Mga Batch na Kahilingan/seg

Ang sukatang ito ay kumakatawan sa bilang ng SQL Server mga batch na natanggap ng instance bawat segundo. Ang isang batch ay maaaring isang pahayag o maramihang mga pahayag na isinumite nang magkasama.

Ang halagang ito ay nagbibigay sa iyo ng pakiramdam ng pangkalahatang aktibidad ng server. Ang biglaang pagbaba sa mga batch na kahilingan sa mga normal na oras ng negosyo ay maaaring magpahiwatig ng mga isyu sa pagkakakonekta ng application o mga problemang kinakaharap ng user.

3.1.5 Pagtatakda ng Refresh Intervals

Maaari mong i-customize kung gaano kadalas ina-update ng Activity Monitor ang data nito:

  1. Mag-right-click kahit saan sa pane ng Pangkalahatang-ideya.
  2. piliin I-refresh ang pagitan.
  3. Pumili ng pagitan mula sa mga paunang natukoy na halaga: 1 segundo, 5 segundo, 10 segundo (default), 30 segundo, 1 minuto, o 1 oras.

Itakda ang agwat ng pag-refresh sa SQL Server Panel ng pangkalahatang-ideya ng Monitor ng Aktibidad.

Ang pagtatakda ng mga agwat ng pag-refresh sa ibaba ng 10 segundo ay nagpapataas ng overhead ng pagsubaybay sa iyong server. Para sa mga system ng produksyon sa ilalim ng mabigat na pagkarga, isaalang-alang ang paggamit ng 30 segundo o mas mahabang pagitan upang mabawasan ang epekto.

3.2 Pane ng Mga Proseso

Ang panel ng Mga Proseso ay nagpapakita ng impormasyon tungkol sa kasalukuyang tumatakbong mga session sa iyong SQL Server halimbawa. Ang pane na ito ay mahalaga para matukoy kung sino ang gumagawa ng kung ano at makita ang mga isyu sa pagharang.

Ang Pane ng Mga Proseso sa SQL Server Monitor ng Aktibidad.

3.2.1 Pag-unawa sa Impormasyon sa Proseso

Ang bawat row sa panel ng Mga Proseso ay kumakatawan sa isang aktibong session sa server. Ang pane ay nagpapakita ng mga session mula sa lahat ng database at lahat ng user, na nagbibigay sa iyo ng komprehensibong view ng aktibidad ng server.

Kasama sa ipinapakitang impormasyon ang login name, application name, hostpangalan, database na ina-access, at kasalukuyang command. Tinutulungan ka nitong iugnay ang aktibidad ng database sa mga partikular na user o application.

3.2.2 Ipinaliwanag ang Mga Pangunahing Hanay

Ang pag-unawa sa mga pangunahing column ay nakakatulong sa iyo na bigyang-kahulugan ang impormasyon ng proseso nang epektibo:

  • ID ng Sesyon: Isang natatanging identifier para sa bawat koneksyon. Gumagamit ang mga proseso ng system ng mga negatibong session ID.
  • Proseso ng Gumagamit: Isinasaad kung ito ay isang session ng user (Oo) o isang proseso ng system (Hindi).
  • Mag-log in: Ang SQL Server login o Windows account na nauugnay sa session.
  • Database: Ang kasalukuyang konteksto ng database para sa session.
  • Estado ng Gawain: Ipinapakita kung ano ang kasalukuyang ginagawa ng session (TUMAtakbo, SUSPENDIDO, NATULOG, atbp.).
  • Command: Ang uri ng utos na isinasagawa (PUMILI, INSERT, I-UPDATE, atbp.).
  • application: Ang pangalan ng application na lumikha ng koneksyon.
  • Maghintay ng Oras: Gaano katagal (sa millisecond) ang session ay naghihintay para sa mga mapagkukunan.
  • Uri ng Paghihintay: Ang partikular na uri ng mapagkukunan na hinihintay ng session.
  • Oras ng CPU: Kabuuang oras ng CPU na natupok ng session na ito mula noong kumonekta ito.
  • Paggamit ng Memory: Dami ng memorya (sa KB) na kasalukuyang nakalaan sa session.

3.2.3 Mga Proseso ng Pag-filter at Pag-uuri

Kasama sa panel ng Mga Proseso ang makapangyarihang mga kakayahan sa pag-filter upang matulungan kang tumuon sa mga nauugnay na session:

  1. I-click ang dropdown na arrow sa anumang header ng column.
  2. Ipinapakita ng filter ang mga available na value para sa column na iyon, kasama ang lahat, Blangko, at NonBlanks.
  3. Pumili ng mga partikular na value para i-filter ang display sa mga session lang na iyon.

I-filter ang mga proseso sa SQL Server Monitor ng Aktibidad.

Halimbawa, maaari mong i-filter Estado ng Gawain upang ipakita lamang ang mga RUNNING session, o filter Database upang makita ang aktibidad laban sa isang partikular na database.

Maaari ka ring mag-uri-uri ayon sa anumang column sa pamamagitan ng pag-click sa header nito. Mag-click nang isang beses para sa pataas na ayos, dalawang beses para sa pababang ayos.

Pagbukud-bukurin ang mga proseso sa SQL Server Monitor ng Aktibidad.

3.2.4 Pagkilala sa Pag-block at Mga Naka-block na Session

Tinutulungan ka ng panel ng Mga Proseso na matukoy ang mga senaryo ng pagharang kung saan pinipigilan ng isang session ang iba na magpatuloy:

  • Hinarang ni: Ipinapakita ang Session ID ng session na humaharang sa session na ito. Kung naglalaman ang column na ito ng value, naghihintay ang session ng lock na hawak ng isa pang session.
  • Head Blocker: Ipinapakita ang '1' kung ang session na ito ay humaharang sa iba ngunit hindi mismo naka-block. Ito ang ugat na sanhi ng isang blocking chain.

Ipakita ang pag-block at mga naka-block na proseso sa SQL Server Monitor ng Aktibidad.

Upang imbestigahan ang isang isyu sa pagharang, tukuyin muna ang head blocker (ang session na may markang '1' sa column na Head Blocker), pagkatapos ay suriin kung ano ang ginagawa nito at magpasya kung hahayaan itong kumpletuhin o wakasan ito.

3.2.5 Mga Prosesong Aksyon (Patayin, Mga Detalye, Bakas)

Nagbibigay-daan sa iyo ang Activity Monitor na gumawa ng mga aksyon sa mga indibidwal na session:

  1. Mag-right-click sa anumang session sa panel ng Mga Proseso.
  2. Makakakita ka ng ilang mga opsyon:
    • Mga detalye: Ipinapakita ang huling utos na isinagawa ng session na ito.
    • Proseso ng Pagpatay: Tinatapos ang session (gamitin nang may pag-iingat).
    • Pagsubaybay sa Proseso sa SQL Server profiler: Naglulunsad SQL Server Profiler at awtomatikong nag-filter upang ipakita lamang ang aktibidad mula sa session na ito.

Magsagawa ng mga aksyon sa mga proseso sa SQL Server Monitor ng Aktibidad.

Ipinapakita sa iyo ng opsyong Detalye ang command text, ngunit tandaan na ito ang huli naisakatuparan ang utos—maaaring hindi pa rin ito tumatakbo. Ang pagpipiliang Trace ay partikular na kapaki-pakinabang kapag kailangan mong makita ang kumpletong pagkakasunud-sunod ng mga utos na isinasagawa ng isang session.

3.3 Resource Waits Pane

Ang Resource Waits pane ay nagbubuod ng mga istatistika ng paghihintay, na nagpapakita kung anong mga uri ng mga resource session ang naghihintay para sa most madalas. Ang impormasyong ito ay mahalaga para sa pag-diagnose ng mga bottleneck sa pagganap.

Ang Resource Waits Pane in SQL Server Monitor ng Aktibidad.

3.3.1 Pag-unawa sa Mga Istatistika ng Paghihintay

Kailan SQL Server hindi kaagad makapagbigay ng kahilingan sa mapagkukunan (tulad ng lock, oras ng CPU, o memory), ang humihiling na gawain ay pumapasok sa isang estado ng paghihintay. Sinusubaybayan ng mga istatistika ng paghihintay ang mga panahon ng paghihintay na ito at tinutulungan kang maunawaan kung saan gumugugol ang server ng oras sa paghihintay kaysa sa pagtatrabaho.

Kinokolekta ng Resource Waits pane ang data mula sa system dynamic management view tulad ng sys.dm_os_wait_stats at sys.dm_exec_requests. Sa bawat agwat ng pag-refresh, kinakalkula nito ang pagkakaiba sa pagitan ng kasalukuyan at nakaraang snapshot, na ipinapakita sa iyo ang rate ng akumulasyon para sa bawat uri ng paghihintay.

3.3.2 Mga Kategorya ng Paghihintay

Pinapangkat ng Activity Monitor ang daan-daang indibidwal na uri ng paghihintay sa mas malawak na kategorya para pasimplehin ang interpretasyon:

  • CPU: Mga gawaing naghihintay na maging available ang oras ng CPU.
  • Buffer Latch: Naghihintay para sa panandaliang mga bagay sa pag-synchronize na nagpoprotekta sa pag-access sa mga pahina ng data sa memorya. Kasama sa kategoryang ito ang mga paghihintay ng page latch (PAGELATCH_*).
  • I-lock: Mga paghihintay na dulot ng mga session na may hawak na mga kandado na kailangan ng ibang mga session.
  • Memory: Naghihintay ng mga memory grant na kailangan ng mga operasyon tulad ng pag-uuri at pag-hash.
  • Network I/O: Naghihintay sa pagpapadala ng data sa o pagtanggap ng data mula sa mga kliyente.
  • SQL CLR: Mga paghihintay na nauugnay sa Common Language Runtime execution.

Bagama't pinapasimple ng pagpapangkat na ito ang view, tinatakpan din nito ang mahahalagang detalye. Halimbawa, maaaring ipangkat ng "Buffer Latch" ang PAGELATCH_SH, PAGELATCH_UP, at PAGELATCH_EX na paghihintay, na may iba't ibang implikasyon para sa pagganap.

3.3.3 Pagbibigay-kahulugan sa Oras ng Paghihintay at Mga Gawain sa Paghihintay

Ang Resource Waits pane ay nagpapakita ng dalawang pangunahing sukatan para sa bawat kategorya ng paghihintay:

  • Pinagsama-samang Oras ng Paghihintay (ms): Ang kabuuang millisecond na naipon sa kasalukuyang agwat ng pag-refresh para sa kategoryang ito ng paghihintay.
  • Mga Naghihintay na Gawain: Ang bilang ng mga gawain na kasalukuyang naghihintay para sa mga mapagkukunan sa kategoryang ito.

Ang halaga ng oras ng paghihintay ay partikular na kawili-wili. Kung mayroon kang 10 segundong agwat ng pag-refresh at makakita ng 20,000ms ng oras ng paghihintay para sa isang kategorya, iyon ay nagpapahiwatig ng maraming sabay na paghihintay (20,000ms / 10,000ms = average ng 2 sabay na paghihintay sa pagitan).

3.3.4 Pagtukoy sa mga Bottleneck sa Pagganap

Gamitin ang Resource Waits pane upang matukoy kung saan ginugugol ng iyong server ang most oras ng paghihintay:

  1. Palawakin ang Resource Waits pane.
  2. Obserbahan ang mga kategorya ng paghihintay na nag-iipon ng pinakamataas na oras ng paghihintay.
  3. Pagsunud-sunurin ayon Pinagsama-samang Oras ng Paghihintay upang makita kung aling mga mapagkukunan ang most pinipigilan.

Pagbukud-bukurin ayon sa Pinagsama-samang Oras ng Paghihintay sa Resource Waits Pane upang mahanap ang bottleneck ng pagganap.

Ang mataas na Buffer Latch na paghihintay ay madalas na nagpapahiwatig ng pagtatalo para sa mga pahina ng data sa memorya, na maaaring magmungkahi ng mga I/O na bottleneck o tempdb na pagtatalo. Ang mga paghihintay ng High Lock ay tumutukoy sa mga isyu sa pagharang. Ang mga paghihintay ng High Memory ay nagmumungkahi ng hindi sapat na memory grant para sa mga pagpapatakbo ng query.

3.4 I/O Pane ng Data File

Ipinapakita ng panel ng I/O ng Data File ang aktibidad ng disk para sa bawat file ng database sa iyong server, na tumutulong sa iyong matukoy ang mga bottleneck ng I/O at maunawaan ang mga pattern ng paggamit ng disk.

Ang Data File I/O Pane sa SQL Server Monitor ng Aktibidad.

3.4.1 Pag-unawa sa I/O Sukatan

Ang Data File I/O pane ay nagpapakita ng ilang sukatan para sa bawat database file:

  • Database: Ang pangalan ng database.
  • Uri ng File: Alinman sa Data (kabilang ang mga talahanayan at index) o Log (log ng transaksyon).
  • Lohikal na Pangalan: Ang lohikal na pangalan ng file tulad ng tinukoy sa SQL Server.
  • MB/seg Basahin: Ang rate ng data na binabasa mula sa file na ito.
  • MB/seg Nakasulat: Ang rate ng data na isinusulat sa file na ito.
  • Oras ng Pagtugon (ms): Average na oras ng pagtugon para sa mga operasyon ng I/O sa file na ito.

Ang mga sukatang ito ay nagre-refresh sa parehong pagitan ng pane ng Pangkalahatang-ideya, na nagbibigay sa iyo ng real-time na visibility sa aktibidad ng disk.

3.4.2 Pagkilala sa I/O Bottlenecks

Panoorin ang mga pattern na ito na nagpapahiwatig ng mga isyu sa pagganap ng I/O:

  • Mataas na Oras ng Pagtugon: Ang mga oras ng pagtugon na patuloy na higit sa 15-20ms ay nagmumungkahi ng mabagal na mga subsystem ng disk. Ang mga oras ng pagtugon sa itaas ng 50ms ay nagpapahiwatig ng mga seryosong bottleneck ng I/O.
  • Hindi balanseng Pag-load: Kung ang isang file ng data ay nagpapakita ng makabuluhang mas mataas na mga rate ng I/O kaysa sa iba sa parehong database, maaari kang makinabang sa pagdaragdag ng mga karagdagang file upang ipamahagi ang load.
  • Labis na Aktibidad sa Tempdb: Ang mataas na rate ng I/O sa mga tempdb na file ay kadalasang nagpapahiwatig ng mga query na lumilikha ng malalaking intermediate na hanay ng resulta o gumagamit ng hindi mahusay na mga plano sa pagpapatupad.

3.4.3 Pagsusuri ng File ng Database

Gamitin ang Data File I/O pane upang maunawaan kung paano ginagamit ng iyong mga database ang mga mapagkukunan ng disk:

  1. Palawakin ang I/O pane ng Data File.
  2. Pagsunud-sunurin ayon MB/seg Basahin or MB/seg Nakasulat upang makilala ang most aktibong mga file.
  3. Tandaan ang anumang mga file na may patuloy na mataas na aktibidad o mahabang oras ng pagtugon.
  4. I-cross-reference ang impormasyong ito gamit ang Recent Expensive Query pane para matukoy kung aling mga query ang nagtutulak sa I/O load.

Pagbukud-bukurin ayon sa Binasa o Nakasulat upang makilala ang most aktibong mga file sa Data File I/O Pane.

3.5 Kamakailang Mamahaling Query Pane

Ang pane ng Recent Expensive Query ay kadalasang ang most mahalagang pane para sa pag-troubleshoot ng mga isyu sa pagganap ng application. Nagpapakita ito ng mga query na gumagamit ng makabuluhang mapagkukunan ng server, na tumutulong sa iyong matukoy ang mga pagkakataon sa pag-optimize.

Ang Kamakailang Mamahaling Query Pane in SQL Server Monitor ng Aktibidad.

3.5.1 Pag-unawa sa Mga Sukatan ng Query

Ang Activity Monitor ay nagpapakita ng ilang sukatan para sa bawat mahal na query:

  • Mga Pagbitay/min: Ilang beses naisagawa ang query sa huling minuto.
  • CPU (ms/sec): Oras ng CPU na ginagamit ng query na ito sa bawat segundo.
  • Mga Pisikal na Pagbasa/seg: Bilang ng pisikal na disk na binabasa bawat segundo para sa query na ito.
  • Mga Lohikal na Pagsusulat/seg: Bilang ng mga lohikal na pagsusulat (sa buffer cache) bawat segundo.
  • Mga Lohikal na Pagbasa/seg: Bilang ng mga lohikal na pagbabasa (mula sa buffer cache) bawat segundo.
  • Average na Tagal (ms): Average na oras ng pagpapatupad para sa query na ito.
  • Bilang ng Plano: Bilang ng mga plano sa pagpapatupad sa cache para sa query na ito.

Tinutulungan ka ng mga sukatang ito na maunawaan hindi lamang kung aling mga query ang mahal, ngunit bakit sila ay mahal at kung gaano kadalas sila tumakbo.

3.5.2 Mga Pagpipilian sa Pag-uuri

Maaari mong pag-uri-uriin ang pane ng Recent Expensive Query ayon sa iba't ibang sukatan upang makahanap ng iba't ibang uri ng mga problema:

  1. I-click ang anumang header ng column upang pagbukud-bukurin ayon sa sukatan na iyon.
  2. Kasama sa mga karaniwang diskarte sa pag-uuri ang:
    • Pagbukud-bukurin ayon sa CPU: Maghanap ng mga query na gumagamit ng most oras ng processor.
    • Pagbukud-bukurin ayon sa Mga Pagpapatupad/min: Tukuyin ang mga query na madalas na tumatakbo.
    • Pagbukud-bukurin ayon sa Pisikal na Pagbasa: Maghanap ng mga query na nagdudulot ng most disk I/O.
    • Pagbukud-bukurin ayon sa Average na Tagal: Hanapin ang matagal nang mga query.

Kapag nag-troubleshoot ng isyu sa performance, subukang pag-uri-uriin ayon sa maraming column upang makakuha ng iba't ibang pananaw. Ang isang query na may katamtamang paggamit ng CPU ngunit napakataas na mga pagpapatupad bawat minuto ay maaaring ang iyong tunay na problema.

3.5.3 Pagtingin sa Teksto ng Query

Upang makita ang aktwal na pahayag ng SQL sa likod ng isang mamahaling query:

  1. Mag-right-click sa row ng query sa pane ng Recent Expensive Query.
  2. piliin I-edit ang Query Text.
    I-edit ang Query Text sa Kamakailang Mamahaling Query Pane.
  3. Ang isang bagong query window ay bubukas na nagpapakita ng kumpletong SQL statement.
    Bagong Query Window pagkatapos piliin ang "I-edit ang Query Text" sa Recent Expensive Query Pane.

Nagbibigay-daan ito sa iyong suriin ang lohika ng query at tukuyin ang mga potensyal na pagkakataon sa pag-optimize. Maaari mong kopyahin ang teksto ng query para sa pagsubok ng mga binagong bersyon.

3.5.4 Pagsusuri ng mga Plano sa Pagpapatupad

Ipinapakita sa iyo ng mga plano sa pagpapatupad kung paano SQL Server nagsasagawa ng isang query, na nagpapakita ng mga inefficiencies tulad ng mga nawawalang index o hindi naaangkop na mga uri ng pagsali:

  1. Mag-right-click sa row ng query sa pane ng Recent Expensive Query.
  2. piliin Ipakita ang Plano ng Pagpapatupad.
    Ipakita ang Plano ng Pagpapatupad sa Pane ng Kamakailang Mamahaling Query.
  3. SQL Server Nagpapakita ang Management Studio ng isang graphical na representasyon ng kung paano isinasagawa ang query.
    Plano ng Pagpapatupad ng query sa isang bagong window.

Maghanap ng mga operasyon na kumukonsumo ng malaking porsyento ng query cost, mga babala tungkol sa mga nawawalang istatistika o index, at hindi inaasahang mga operasyon sa pag-scan ng talahanayan. Ang mga ito ay madalas na nagpapahiwatig kung saan dapat tumuon ang mga pagsisikap sa pag-optimize.

3.5.5 Pagkilala sa Mga Problemadong Query

Panoorin ang mga pattern na ito sa pane ng Recent Expensive Query:

  • Labis na Pagbitay: Ang isang query na nagpapatupad ng libu-libong beses bawat minuto ay maaaring magpahiwatig ng isang N+1 na problema sa query kung saan ang application code ay tumatawag sa database sa loob ng isang loop.
  • Mataas na Pisikal na Pagbasa: Ang mga query na may mataas na pisikal na read rate ay madalas na tumatama sa disk, na nagmumungkahi ng mga nawawalang index o hindi maayos na nakasulat na mga query.
  • Mataas na CPU na may Mababang Tagal: Maraming mabilis na query na kumukonsumo ng maraming CPU sa pinagsama-samang maaaring makaapekto sa pagganap ng server gaya ng ilang mabagal na query.
  • Maramihang Mga Bilang ng Plano: Ang mga query na may maraming mga plano sa pagpapatupad ay maaaring magdusa mula sa mga isyu sa pag-sniff ng parameter o hindi na-parameter na mga query na nagdudulot ng pag-bloat ng cache ng plano.

4. Paggamit ng Activity Monitor para sa Performance Troubleshooting

Tunay na kumikinang ang Activity Monitor kapag sistematikong ginagamit mo ito upang masuri at malutas ang mga problema sa pagganap. Sinasaklaw ng seksyong ito ang mga karaniwang senaryo sa pag-troubleshoot at kung paano lapitan ang mga ito.

4.1 Pag-diagnose ng Labis na Pagpapatupad ng Query

Isa sa kanilaost Ang mga karaniwang problema sa pagganap ay ang mga query na nagpapatupad ng mas madalas kaysa sa kinakailangan, kadalasan dahil sa mga isyu sa disenyo ng application.

4.1.1 Pagkilala sa Mga Paulit-ulit na Tanong

Upang makita ang mga query na masyadong madalas na isinasagawa:

  1. Buksan ang Monitor ng Aktibidad at palawakin ang Mga Kamakailang Mamahaling Query pane.
  2. Pagsunud-sunurin ayon Mga pagbitay/min (mga execution kada minuto).
  3. Maghanap ng mga query sa itaas na may mga bilang ng pagpapatupad na mukhang hindi makatwirang mataas.
  4. I-right-click ang hinihinalang query at piliin I-edit ang Query Text upang suriin ang SQL statement.

Halimbawa, kung makakita ka ng simpleng SELECT statement na nagpapatupad ng 37,000 beses kada minuto, tanungin kung talagang kailangang tawagan ng application ang query na ito nang madalas. Most mga query na nagsasagawa ng higit sa ilang libong beses kada minutong warrant investigation.

4.1.2 Pagsusuri sa Root Cause

Ang mga labis na pagpapatupad ng query ay karaniwang nagmumula sa mga isyung ito:

  • N+1 Query Problem: Kinukuha ng code ng application ang isang listahan ng mga item, pagkatapos ay nagsasagawa ng hiwalay na query para sa bawat item upang makuha ang nauugnay na data. Lumilikha ito ng N karagdagang query kung saan ang N ay ang bilang ng mga item.
  • Nawawalang Caching: Ang application ay nagtatanong sa database para sa data na iyon rarnagbabago sa halip na i-cache ito sa memorya ng application.
  • Mga Loop ng botohan: Ang code ay paulit-ulit na nagtatanong sa database na nagsusuri ng mga pagbabago sa estado sa halip na gumamit ng mga abiso sa pagbabago o mga pila ng mensahe.
  • ORM Inefficiency: Ang Entity Framework at mga katulad na tool kung minsan ay bumubuo ng mga hindi mahusay na pattern ng query kapag hindi naiintindihan ng mga developer kung paano isinasalin ang kanilang code sa SQL.

Upang matukoy ang ugat na sanhi, subaybayan ang query pabalik sa application code. Pansinin ang application at Mag-login mga hanay sa panel ng Mga Proseso kapag na-execute ang query. Maaari mo ring i-right-click ang proseso at piliin Pagsubaybay sa Proseso sa SQL Server Profiler upang makita ang pattern ng pagtawag.

4.1.3 Mga Solusyon at Pinakamahuhusay na Kasanayan

Kapag natukoy mo na ang labis na pagpapatupad ng query, isaalang-alang ang mga solusyong ito:

  • Batch Processing: Baguhin ang code ng application upang makakuha ng maraming item sa isang query gamit ang mga join o IN clause sa halip na magsagawa ng hiwalay na mga query sa isang loop.
  • Pag-cache ng Resulta: Madalas na ina-access ang cache, madalang na nagbabago ng data sa memorya ng application na may naaangkop na mga oras ng pag-expire.
  • Sabik na Naglo-load: I-configure ang mga ORM na gumamit ng sabik na mga diskarte sa paglo-load na kumukuha ng nauugnay na data sa mas kaunti, mas mahusay na mga query.
  • Parameterization ng Query: Tiyaking gumagamit ang mga query ng mga parameter kaysa sa pagsasama-sama ng mga halaga, na nagpapahusay sa paggamit muli ng cache ng plan at binabawasan ang overhead ng compilation.

4.2 Pagsisiyasat sa Mga Isyu sa Pagharang

Ang pagharang ay nangyayari kapag ang isang session ay may mga kandado na pumipigil sa iba pang mga session na magpatuloy. Nagpapakita ito bilang mabagal na oras ng pagtugon sa application at mga bigong user.

4.2.1 Pagkilala sa mga Blocking Chain

Upang makita at suriin ang pagharang:

  1. Buksan ang Monitor ng Aktibidad at palawakin ang Mga Proseso pane.
  2. Maghanap ng mga session na may mga halaga sa Na-block Ni column—naghihintay ito ng mga kandado na hawak ng ibang mga session.
  3. Maghanap ng mga session na may '1' sa Head Blocker column—ito ang ugat na sanhi ng pagharang sa mga kadena.
  4. Tandaan ang ID ng Session ng head blocker.
  5. I-right-click ang session ng head blocker at piliin Detalye upang makita kung anong utos ang ipinapatupad nito.

Ang pag-unawa sa blocking chain ay mahalaga. Ang head blocker ay ang session na kailangan mong imbestigahan, hindi ang mga naka-block na session sa ibaba ng agos.

4.2.2 Pag-unawa sa Mga Uri ng Lock

Ang Uri ng Wait Ang column sa panel ng Mga Proseso ay nagpapahiwatig kung anong uri ng mga session na naka-block na lock ang hinihintay:

  • LCK_M_X: Eksklusibong paghihintay sa lock, kadalasang sanhi ng mga pagpapatakbo ng UPDATE, DELETE, o INSERT.
  • LCK_M_S: Nakabahaging paghihintay sa lock, karaniwang PUMILI ng mga pahayag na naghihintay para sa mga eksklusibong lock na ilabas.
  • LCK_M_U: I-update ang lock wait, isang intermediate na uri ng lock na ginagamit sa panahon ng mga update.
  • LCK_M_IX: Eksklusibong paghihintay sa lock ng layunin, na nagpapahiwatig ng pagtatalo sa lock sa antas ng page o hilera.

Ang Maghintay Resource ipinapakita ng column kung aling database object ang ini-lock, na tumutulong sa iyong maunawaan kung aling talahanayan o index ang kasangkot sa pagtatalo.

4.2.3 Paglutas ng mga Isyu sa Pagharang

Kapag natukoy mo na ang session ng pagharang at kung ano ang ginagawa nito, mayroon kang ilang mga opsyon:

  1. Maghintay para sa Pagkumpleto: Kung ang head blocker ay nagpapatakbo ng isang lehitimong query na matatapos sa lalong madaling panahon, maaaring pinakamahusay na hayaan itong matapos nang natural.
  2. Patayin ang Session: Kung ang head blocker ay natigil o nagpapatakbo ng isang query na dapat kanselahin:
    • I-right-click ang session sa panel ng Mga Proseso.
    • piliin Patayin ang proseso.
    • Kumpirmahin ang aksyon sa dialog box.
  3. I-optimize ang mga Query: Kung umuulit ang pag-block sa parehong mga query, i-optimize ang mga ito upang bawasan ang tagal ng pag-lock ng mga ito.
  4. Ayusin ang Mga Antas ng Paghihiwalay: Isaalang-alang ang paggamit ng READ COMMITTED SNAPSHOT ISOLATION para mabawasan ang pagharang sa mga read-heavy workloads.
  5. Pag-tune ng Index: Magdagdag ng mga index upang mapabilis ang mga query, na binabawasan kung gaano katagal ang mga ito ay may mga lock.

4.3 Pagsusuri ng Mataas na Paggamit ng CPU

Kapag ang pane ng Pangkalahatang-ideya ay nagpapakita ng oras ng processor nang tuluy-tuloy sa o malapit sa 100%, kailangan mong tukuyin kung aling mga query ang may pananagutan at tukuyin kung ma-optimize ang mga ito.

4.3.1 Pagkilala sa Mga Query na Masinsinang CPU

Upang maghanap ng mga query na gumagamit ng labis na CPU:

  1. Buksan ang Mga Kamakailang Mamahaling Query pane.
  2. Pagsunud-sunurin ayon CPU (ms/sec) upang ipakita ang mga query gamit ang most oras ng CPU.
  3. Suriin ang mga nangungunang query sa listahan.
  4. Mag-right-click sa mataas na mga query sa CPU at piliin I-edit ang Query Text upang tingnan ang SQL statement.
  5. piliin Ipakita ang Plano ng Pagpapatupad upang maunawaan kung paano isinasagawa ang query.

Bigyang-pansin hindi lamang ang indibidwal na query sa paggamit ng CPU kundi pati na rin ang Mga pagbitay/min hanay. Ang isang query na gumagamit ng katamtamang CPU sa bawat pagpapatupad ngunit tumatakbo ng libu-libong beses bawat minuto ay maaaring ang iyong pinakamalaking consumer ng CPU.

4.3.2 Mga Teknik sa Pag-optimize ng Query

Ang mga karaniwang diskarte upang bawasan ang pagkonsumo ng CPU ay kinabibilangan ng:

  • Magdagdag ng mga Nawawalang Index: Hinahangad ng Index na gumamit ng mas kaunting CPU kaysa sa mga pag-scan sa talahanayan. Maghanap ng mga nawawalang rekomendasyon sa index sa mga plano sa pagpapatupad.
  • Isulat muli ang Hindi Mahusay na Mga Tanong: Palitan ang mga cursor ng mga set-based na operasyon, alisin ang mga hindi kinakailangang function sa mga sugnay na WHERE, at alisin ang mga paulit-ulit na pagsasama.
  • I-update ang Istatistika: Dahil sa hindi napapanahong mga istatistika SQL Server upang pumili ng hindi mahusay na mga plano sa pagpapatupad. Patakbuhin ang UPDATE STATISTICS sa mga apektadong talahanayan.
  • Bawasan ang Dami ng Data: Magdagdag ng mga sugnay na WHERE upang mag-filter ng data nang mas maaga, gumamit ng TOP o OFFSET/FETCH para sa pagination, at iwasan ang SELECT *.
  • Ayusin ang Parameter Sniffing: Gumamit ng OPTION (RECOMPILE), mga pahiwatig ng query, o mga gabay sa plano kapag nagdudulot ng mga problema ang pag-sniff ng parameter.

4.4 Pagsisiyasat sa Mga Isyu sa Memorya

Ang presyon ng memorya ay maaaring maging sanhi ng pagbuhos ng mga query sa disk, na makabuluhang nagpapababa sa pagganap. Tinutulungan ka ng Activity Monitor na matukoy ang mga pagpapatakbong masinsinang memorya.

4.4.1 Pag-unawa sa Mga Sukatan ng Memorya

Ang Paggamit ng Memorya column sa panel ng Mga Proseso ay nagpapakita ng memorya na inilaan sa bawat session sa kilobytes. Ang mataas na paggamit ng memory sa pamamagitan ng isang session ay madalas na nagpapahiwatig ng:

  • Malaking pag-uuri o hash na mga operasyon na hindi magkasya sa unang ibinigay na memorya
  • Mga query na kumukuha ng napakalaking set ng resulta
  • Sobrang paralelismo na lumilikha ng maraming kopya ng mga operator ng execution plan
  • Tumagas ang memory sa mga naka-imbak na pamamaraan o function ng CLR

Ang Resource Waits pane ay maaaring magpakita ng Memory waiting kapag ang mga query ay hindi makakuha ng sapat na memory grant at dapat maghintay para sa memory na maging available.

4.4.2 Pagkilala sa Memory-Intensive Query

Upang maghanap ng mga query na nagdudulot ng presyon ng memorya:

  1. Sa Mga Proseso pane, ayusin ayon sa Paggamit ng Memorya upang makita ang mga sesyon na kumakain ng most memorya.
  2. I-right-click ang mga session na may mataas na paggamit ng memory at piliin Detalye upang tingnan ang kanilang mga katanungan.
  3. Sa Mga Kamakailang Mamahaling Query pane, maghanap ng mga query na may mataas Logical Reads or Mga Logical na Pagsusulat, dahil madalas itong nauugnay sa paggamit ng memorya.
  4. Suriin ang mga plano sa pagpapatupad para sa mga operator ng Sort at Hash Match, na gumagamit ng mga memory grant.

Ang mga query na nagpapakita ng mga babala ng "Memory Grant" sa mga plano sa pagpapatupad o mga babala sa spill ay nagpapahiwatig ng mga isyu sa presyon ng memorya.

4.5 Pagtukoy sa Mga Problema sa Pagganap ng Application

Kapag nag-ulat ang mga user ng mabagal na oras ng pagtugon sa application, tinutulungan ka ng Activity Monitor na matukoy kung ang database ang bottleneck.

4.5.1 Pag-uugnay ng Monitor ng Aktibidad sa Mga Isyu sa Application

Upang siyasatin ang kabagalan ng aplikasyon:

  1. Tandaan ang eksaktong oras ng pag-uulat ng mga user ng mga problema at ang mga application na apektado.
  2. Buksan ang Monitor ng Aktibidad at suriin ang Pangkalahatang-ideya pane para sa mga spike ng mapagkukunan sa oras na iyon.
  3. Sa Mga Proseso pane, salain ayon sa application upang ipakita lamang ang mga koneksyon mula sa apektadong aplikasyon.
  4. Maghanap ng mataas Oras ng Paghintay mga halaga, na nagpapahiwatig ng mga pagkaantala sa database.
  5. Lagyan ng check ang Mga Kamakailang Mamahaling Query pane para sa mga query mula sa application na iyon na gumagamit ng makabuluhang mapagkukunan.

Kung ang database ay hindi nagpapakita ng kakaibang aktibidad habang ang mga user ay nakakaranas ng kabagalan, ang problema ay malamang na nasa application code, network latency, o client-side performance.

4.5.2 Pagkilala sa Mga Hindi Mahusay na Pattern ng Application

Ang Activity Monitor ay nagpapakita ng ilang mga anti-pattern sa disenyo ng application:

  • Mga Chatty Application: Maraming maliliit na query sa halip na mas kaunti, mas mahusay na mga query. Kinilala ng mataas na bilang ng koneksyon at maraming simpleng query sa Kamakailang Mamahaling Query.
  • N+1 na Query: Isang query na sinusundan ng N karagdagang query para sa kaugnay na data. Ipinapakita bilang isang simpleng query na may napakataas na execution bawat minuto.
  • Mga Set ng Malaking Resulta: Mga application na kumukuha ng mas maraming data kaysa sa kinakailangan. Maghanap ng mataas Logical Reads pinagsama sa simpleng SELECT * query.
  • Mga Nawawalang Timeout: Ang mga application na hindi nagtatakda ng mga timeout ng command ay maaaring mag-iwan ng mga koneksyon na bukas nang walang katiyakan, na nakikita bilang mga matagal nang session sa pane ng Mga Proseso.

5. Mga Alternatibong Paraan: Pagkuha ng Data ng Monitor ng Aktibidad sa pamamagitan ng T-SQL

Habang ang Activity Monitor ay nagbibigay ng maginhawang graphical na interface, minsan kailangan mong kunin ang katumbas na impormasyon sa pamamagitan ng program o gumawa ng mga custom na solusyon sa pagsubaybay.

5.1 Paggamit ng Dynamic Management Views (DMVs)

SQL Server inilalantad ang impormasyon ng aktibidad sa pamamagitan ng mga dynamic na view ng pamamahala, na kine-query ng Activity Monitor sa likod ng mga eksena.

5.1.1 Mga Pangunahing DMV para sa Pagsubaybay sa Aktibidad

M Angost Ang mahahalagang DMV para sa pagkopya ng functionality ng Activity Monitor ay kinabibilangan ng:

  • sys.dm_exec_requests: Ipinapakita ang kasalukuyang nagsasagawa ng mga kahilingan gamit ang CPU, I/O, at impormasyon sa paghihintay.
  • sys.dm_exec_sessions: Naglalaman ng impormasyon sa antas ng session tulad ng pangalan sa pag-login, host pangalan, at pangalan ng programa.
  • sys.dm_os_wait_stats: Nagbibigay ng pinagsama-samang istatistika ng paghihintay para sa buong instance.
  • sys.dm_exec_query_stats: Naglalaman ng pinagsama-samang istatistika ng pagganap para sa mga naka-cache na query.
  • sys.dm_io_virtual_file_stats: Ibinabalik ang mga istatistika ng I/O para sa data at mga log file.
  • sys.dm_exec_sql_text: Kinukuha ang SQL text para sa isang ibinigay na sql_handle o plan_handle.
  • sys.dm_exec_query_plan: Ibinabalik ang execution plan para sa isang naka-cache na query.

5.1.2 Mga Sample na Query para sa Impormasyon sa Proseso

Upang kopyahin ang pagpapagana ng panel ng Mga Proseso, maaari kang mag-query:

SELECT 
    s.session_id AS [Session ID],
    CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
    s.login_name AS [Login],
    ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
    CASE 
        WHEN r2.session_id IS NOT NULL 
        AND (r.blocking_session_id = 0 OR r.session_id IS NULL) 
        THEN '1' 
        ELSE '' 
    END AS [Head Blocker],
    ISNULL(DB_NAME(r.database_id), '') AS [Database],
    ISNULL(t.task_state, '') AS [Task State],
    ISNULL(r.command, '') AS [Command],
    r.cpu_time AS [CPU Time],
    r.total_elapsed_time AS [Elapsed Time],
    r.wait_time AS [Wait Time],
    r.wait_type AS [Wait Type],
    s.memory_usage * 8 AS [Memory Use (KB)],
    s.host_name AS [Host Name],
    s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;

5.1.3 Mga Sample na Query para sa Mga Istatistika ng Paghihintay

Upang makita ang mga istatistika ng paghihintay na katulad ng pane ng Resource Waits:

SELECT TOP 10
    wait_type AS [Wait Type],
    wait_time_ms / 1000.0 AS [Wait Time (sec)],
    waiting_tasks_count AS [Waiting Tasks],
    wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
    AND wait_type NOT LIKE '%IDLE%'
    AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;

5.2 Paggamit ng sp_WhoIsActive

Ang sp_WhoIsActive ay isang makapangyarihang pamamaraang naka-imbak na nilikha ng komunidad na nagbibigay ng mas detalyadong impormasyon kaysa sa Activity Monitor sa isang set ng resulta.

5.2.1 Pag-install ng sp_WhoIsActive

Upang i-install ang sp_WhoIsActive:

  1. I-download ang pinakabagong bersyon mula sa http://whoisactive.com.
  2. Ang pag-download ay isang SQL script na naglalaman ng kahulugan ng pamamaraan.
  3. Buksan ang script sa SQL Server Pamamahala ng Studio.
  4. Kumonekta sa iyong SQL Server halimbawa.
  5. Isagawa ang script upang lumikha ng pamamaraan sa master database.
  6. Magbigay ng mga pahintulot sa pagpapatupad sa mga naaangkop na user.

Dahil ang sp_WhoIsActive ay naka-install sa master, naa-access ito mula sa anumang konteksto ng database.

5.2.2 Mga Pangunahing Halimbawa ng Paggamit

Ang pinakasimpleng paraan upang magamit ang sp_WhoIsActive ay:

EXEC sp_WhoIsActive;

Nagbabalik ito ng set ng resulta na nagpapakita ng lahat ng aktibong session kasama ng kanilang mga query, mga uri ng paghihintay, impormasyon sa pag-block, at paggamit ng mapagkukunan.

Para sa isang 10 segundong sample na nagpapakita ng aktibidad sa panahong iyon:

EXEC sp_WhoIsActive @delta_interval = 10;

Kinakalkula nito ang mga delta para sa mga sukatan tulad ng CPU at pagbabasa, na nagpapakita kung ano ang nangyari sa loob ng 10 segundong iyon.

5.2.3 Mga Advanced na Parameter

Sinusuportahan ng sp_WhoIsActive ang maraming parameter para sa pagpapasadya:

  • @filter: I-filter ang mga resulta sa mga partikular na session, database, o mga pag-login.
  • @filter_type: Tukuyin kung saan nalalapat ang filter (session, database, login, atbp.).
  • @get_plans: Isama ang mga plano sa pagpapatupad sa mga resulta (itakda sa 1).
  • @get_locks: Ipakita ang detalyadong impormasyon sa lock (itakda sa 1).
  • @get_transaction_info: Ipakita ang mga detalye ng transaksyon (itakda sa 1).
  • @sort_order: Mag-order ng mga resulta ayon sa iba't ibang sukatan (CPU, mga nabasa, tagal, atbp.).
  • @destination_table: Ipasok ang mga resulta sa isang talahanayan para sa makasaysayang pagsubaybay.

Halimbawang nagpapakita ng mga plano na pinagsunod-sunod ayon sa CPU:

EXEC sp_WhoIsActive 
    @get_plans = 1,
    @sort_order = '[CPU] DESC';

5.3 Paggamit ng System Stored Procedures

SQL Server kasama ang mga tradisyonal na nakaimbak na pamamaraan para sa aktibidad ng pagsubaybay, kahit na nagbibigay ang mga ito ng mas kaunting impormasyon kaysa sa mga DMV o Activity Monitor.

5.3.1 sp_sino at sp_sino2

Ang sp_who procedure ay nagpapakita ng pangunahing impormasyon ng session:

EXEC sp_who;

Ang pamamaraan ng sp_who2 ay nagbibigay ng kaunting detalye:

EXEC sp_who2;

Ang parehong mga pamamaraan ay nagpapakita ng mga session ID, mga pangalan sa pag-log in, oras ng CPU, at impormasyon sa pagharang. Gayunpaman, kulang sila ng maraming detalye na magagamit sa pamamagitan ng mga DMV o Activity Monitor. Sila ay most kapaki-pakinabang para sa mabilisang pagsusuri kapag kailangan mo ng kaunting impormasyon nang mabilis.

5.3.2 Iba Pang Mga Kapaki-pakinabang na Pamamaraan ng System

Ang mga karagdagang pamamaraan ng system para sa pagsubaybay ay kinabibilangan ng:

  • sp_lock: Ipinapakita ang impormasyon ng lock (hindi na ginagamit; gamitin na lang ang sys.dm_tran_locks).
  • sp_monitor: Nagpapakita ng mga istatistika tungkol sa SQL Server aktibidad.
  • sp_help: Nagpapakita ng mga kahulugan ng object at metadata.
  • DBCC SQLPERF: Ipinapakita ang paggamit ng espasyo sa log ng transaksyon at mga istatistika ng paghihintay.

5.4 Paglikha ng Custom na Monitoring Scripts

Para sa mga kapaligiran na nangangailangan ng partikular na pagsubaybay na higit pa sa ibinibigay ng Activity Monitor, maaari kang bumuo ng mga custom na solusyon gamit ang mga DMV.

5.4.1 Kumpletuhin ang Activity Monitor Katumbas na Script

Narito ang isang komprehensibong script na kinokopya ang most Pag-andar ng Activity Monitor:

-- Processes Information
SELECT 
    s.session_id AS [Session ID],
    CONVERT(CHAR(1), s.is_user_process) AS [User Process],
    s.login_name AS [Login],
    ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
    CASE 
        WHEN r2.session_id IS NOT NULL 
        AND (r.blocking_session_id = 0 OR r.session_id IS NULL) 
        THEN '1' 
        ELSE '' 
    END AS [Head Blocker],
    ISNULL(DB_NAME(r.database_id), N'') AS [Database],
    ISNULL(t.task_state, N'') AS [Task State],
    ISNULL(r.command, N'') AS [Command],
    SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
        ((CASE r.statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.text)
            ELSE r.statement_end_offset 
        END - r.statement_start_offset) / 2) + 1) AS [Statement],
    st.text AS [Command Text],
    r.cpu_time AS [CPU Time (ms)],
    r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
    r.wait_time AS [Wait Time (ms)],
    r.wait_type AS [Wait Type],
    r.wait_resource AS [Wait Resource],
    s.memory_usage * 8 AS [Memory Use (KB)],
    s.host_name AS [Host Name],
    c.client_net_address AS [Net Address],
    s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id 
    AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;

-- Recent Expensive Queries
SELECT TOP 20
    qs.execution_count / 
        DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
    qs.total_worker_time / 1000 AS [CPU Time (ms)],
    qs.total_physical_reads AS [Physical Reads],
    qs.total_logical_writes AS [Logical Writes],
    qs.total_logical_reads AS [Logical Reads],
    qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
        ((CASE qs.statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.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) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;

5.4.2 Pag-automate ng Pagsubaybay gamit ang SQL Agent Jobs

Maaari kang mag-iskedyul ng mga custom na script ng pagsubaybay gamit SQL Server Ahente:

  1. Gumawa ng talahanayan upang mag-imbak ng mga resulta ng pagsubaybay.
  2. Baguhin ang iyong script ng pagsubaybay upang magpasok ng mga resulta sa talahanayang ito.
  3. In SQL Server Management Studio, palawakin SQL Server ahente sa Object Explorer.
  4. I-right-click ang Trabaho at piliin ang Bagong trabaho.
  5. I-configure ang trabaho upang patakbuhin ang iyong monitoring script sa mga regular na pagitan.
  6. Mag-set up ng mga alerto o ulat batay sa nakolektang data.

Ang diskarteng ito ay nagbibigay-daan sa makasaysayang pagsubaybay at pagsusuri ng trend na hindi ibinibigay ng Activity Monitor.

6. Mga Limitasyon at Pagsasaalang-alang ng Activity Monitor

Bagama't mahalaga ang Activity Monitor, ang pag-unawa sa mga limitasyon nito ay nakakatulong sa iyong gamitin ito nang naaangkop at dagdagan ito ng iba pang mga tool kung kinakailangan.

6.1 Pag-unawa sa Overhead ng Monitor ng Aktibidad

Ang Monitor ng Aktibidad ay hindi libre—kumokonsumo ito ng mga mapagkukunan ng server upang mangolekta at magpakita ng impormasyon. Ang pag-unawa sa overhead na ito ay nakakatulong sa iyong gamitin ito nang responsable.

6.1.1 Epekto sa Mga Mapagkukunan ng Server

Ang Monitor ng Aktibidad ay nagpapatakbo ng mga query laban sa mga DMV ng system sa tuwing nagre-refresh ito. Ang mga query na ito ay gumagamit ng CPU, bumubuo ng mga lohikal na pagbabasa, at maaaring panandaliang humawak ng mga lock sa mga talahanayan ng system. Sa mga abalang server, ang overhead na ito ay maaaring makaapekto sa performance.

Ang mga panel ng Mga Proseso at Kamakailang Mamahaling Query ay partikular na mahal, dahil dapat silang mag-scan ng mga potensyal na malalaking DMV at cache table. Sa mga server na may libu-libong naka-cache na query plan, maaaring tumagal ng ilang segundo ang pagre-refresh ng Mga Kamakailang Mamahaling Query.

Nagbabala ang dokumentasyon ng Microsoft na ang mga agwat ng pag-refresh sa ibaba ng 10 segundo ay maaaring kapansin-pansing makaapekto sa pagganap ng server, lalo na sa mga system na na-load na.

6.1.2 Mga Pinakamahuhusay na Kasanayan sa Pag-refresh sa pagitan

Pumili ng mga agwat ng pag-refresh na angkop para sa iyong sitwasyon:

  • 1-5 segundo: Para lamang sa agarang pag-troubleshoot ng mga kritikal na isyu sa mga hindi gaanong na-load na server. Huwag hayaang tumatakbo ang Monitor ng Aktibidad sa mga pagitan na ito.
  • 10 segundo (default): Makatwiran para sa most mga senaryo sa pag-troubleshoot at pangkalahatang pagsubaybay.
  • 30-60 segundo: Mas mahusay na pagpipilian para sa mga server ng produksyon sa ilalim ng mabigat na pagkarga o kapag sinusubaybayan para sa pinalawig na mga panahon.
  • Manu-manong pag-refresh lamang: Para sa mga sitwasyon kung saan gusto mong suriin ang kasalukuyang estado paminsan-minsan nang walang tuloy-tuloy na botohan.

Palaging isara ang Activity Monitor kapag tapos ka nang mag-imbestiga. Huwag hayaan itong tuluy-tuloy na tumatakbo, lalo na ang maraming pagkakataon mula sa iba't ibang user.

6.2 Mga Isyu sa Pagpapangkat ng Uri ng Wait

Ang diskarte ng Activity Monitor sa pagkakategorya ng mga paghihintay, habang pinapasimple ang view, ay maaaring malabo ang mahalagang diagn.ostic impormasyon.

6.2.1 Paano Naghihintay ang Activity Monitor Groups

SQL Server sumusubaybay sa daan-daang natatanging uri ng paghihintay, bawat isa ay nagpapahiwatig ng isang partikular na mapagkukunan o kundisyon. Pinagpangkat-pangkat ito ng Activity Monitor sa malawak na kategorya tulad ng “Buffer Latch,” “Lock,” at “Memory.”

Halimbawa, ang kategoryang "Buffer Latch" ay kinabibilangan ng PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX, at ilang iba pang partikular na uri ng paghihintay. Bagama't lahat sila ay nauugnay sa pag-access sa page, mayroon silang iba't ibang dahilan at solusyon.

Ang Microsoft ay hindi eksaktong nagdodokumento kung aling mga uri ng paghihintay ang nagmamapa sa kung aling mga kategorya, na nagpapahirap na maunawaan kung ano ang talagang nakikita mo.

6.2.2 Mga Nawawalang Uri ng Paghihintay

Hindi ipinapakita ng Activity Monitor ang lahat ng uri ng paghihintay. Most kapansin-pansin, madalas nitong tinatanggal ang paghihintay ng CXPACKET, na nagpapahiwatig ng parallel na pagpapatupad ng query. Ang mga paghihintay sa CXPACKET ay karaniwan at karaniwang hindi problema, ngunit ang pag-alam na naroroon ang mga ito ay nakakatulong sa iyong maunawaan ang mga katangian ng workload.

Kapag ipinakita ng Activity Monitor ang "Buffer Latch" bilang iyong nangungunang paghihintay ngunit ang ibang mga tool ay nagpapakita ng CXPACKET na nangingibabaw, ang pagkakaiba ay nagmumula sa pag-filter at pagpapangkat ng logic ng Activity Monitor.

6.2.3 Bakit Mahalaga ang Mga Tukoy na Uri ng Paghihintay

Ang pag-alam sa partikular na uri ng paghihintay ay mahalaga para sa pag-troubleshoot:

  • PAGELATCH_EX: Kadalasan ay nagpapahiwatig ng tempdb na pagtatalo sa mga pahina ng paglalaan. Kasama sa solusyon ang pagdaragdag ng higit pang mga file ng data ng tempdb.
  • PAGELATCH_SH: Maaaring magpahiwatig ng mga maiinit na pahina sa mga talahanayan ng user. Kasama sa solusyon ang paghahati o muling pagsasaayos ng index.
  • PAGELATCH_UP: Karaniwan sa panahon ng pag-update. Maaaring magpahiwatig ng normal na operasyon sa halip na isang problema.

Pinapangkat ng Activity Monitor ang lahat ng ito sa ilalim ng "Buffer Latch," na nagpapahirap sa diagnosis. Ang mga tool tulad ng sp_WhoIsActive at DMV query ay nagpapakita ng mga partikular na uri ng paghihintay.

6.3 Katumpakan at Katumpakan ng Data

Nagbibigay ang Activity Monitor ng malapit-real-time na view, ngunit ang "malapit" ay ang operative word. Ang pag-unawa sa paraan ng pangongolekta ng data nito ay nakakatulong sa iyo na bigyang-kahulugan nang tama ang mga resulta.

6.3.1 Snapshot kumpara sa Patuloy na Pagsubaybay

Ipinapakita ng Activity Monitor ang mga point-in-time na snapshot na kinunan sa bawat agwat ng pag-refresh. Ang mga kaganapang nagaganap sa pagitan ng mga snapshot ay hindi nakunan. Kung ang isang query ay tumatakbo nang 2 segundo at nagre-refresh ka bawat 10 segundo, maaari mo itong makita nang isang beses o hindi, depende sa timing.

Nangangahulugan ito na ang Activity Monitor ay mahusay sa paghahanap ng mga patuloy na problema (pagba-block ng mga pangmatagalang minuto, patuloy na mataas na CPU) ngunit maaaring makaligtaan ang mga lumilipas na isyu (maikling deadlock, paminsan-minsang pagtaas ng query).

6.3.2 Pagsasama-sama at Pag-sample

Ang pane ng Recent Expensive Query ay nagpapakita ng pinagsama-samang data mula nang pumasok ang mga query plan sa cache. Dalawang magkaparehong query na may magkaibang mga value ng parameter ang lalabas bilang isang row kung magbahagi sila ng plano. Maaaring itago ng pagsasama-samang ito ang mga problema sa mga partikular na kumbinasyon ng parameter (mga isyu sa pag-sniff ng parameter).

Kinakalkula ng Resource Waits pane ang mga rate sa pamamagitan ng paghahambing ng mga snapshot. Kung magre-reset ang mga istatistika ng paghihintay sa pagitan ng mga snapshot (rare ngunit posible), ang mga kinakalkula na mga rate ay maaaring hindi tama.

6.4 Kailan HINDI Gagamitin ang Monitor ng Aktibidad

Ang Monitor ng Aktibidad ay hindi angkop para sa bawat senaryo ng pagsubaybay. Kilalanin kung ang mga alternatibong tool ay mas mahusay na mga pagpipilian.

6.4.1 Mga Kinakailangan sa Pagsusuri sa Kasaysayan

Ang Activity Monitor ay nagpapakita lamang ng kasalukuyan o kamakailang aktibidad. Hindi ito nag-iimbak ng makasaysayang data. Kung kailangan mong suriin ang mga trend sa paglipas ng mga araw o linggo, ihambing ang kasalukuyang pagganap sa mga baseline, o bumuo ng mga ulat sa mga pattern ng pagganap, ang Monitor ng Aktibidad ay hindi sapat.

Para sa makasaysayang pagsusuri, gamitin SQL ServerAng built-in na Dashboard ng Pagganap, Mga Pinalawak na Kaganapan na may file tarnakukuha, o mga solusyon sa pagsubaybay ng third-party.

6.4.2 Mga Detalyadong Istatistika ng Paghihintay na Kailangan

Kapag kailangan mo ng tumpak na impormasyon sa uri ng paghihintay para sa advanced na pag-tune, ginagawa itong hindi sapat dahil sa pagpapangkat at pag-filter ng Activity Monitor. Direktang gumamit ng mga query sa DMV o sa halip ay sp_WhoIsActive.

Para sa komprehensibong pagsusuri sa istatistika ng paghihintay, direktang i-query ang sys.dm_os_wait_stats at manu-manong i-filter ang mga benign na paghihintay.

6.4.3 Mga Pagsasaalang-alang ng Server ng Produksyon

Sa mga server ng produksyon sa ilalim ng mabigat na pagkarga, maaaring maging problema ang overhead ng Activity Monitor. Hindi lahat ng mga administrator ng database ay dapat magpatakbo ng Activity Monitor nang sabay-sabay sa parehong server.

Para sa pagsubaybay sa produksyon, isaalang-alang ang mga magaan na alternatibo tulad ng naka-iskedyul na mga snapshot ng DMV na nakaimbak sa database ng pagsubaybay, o gumamit ng Read-Only na pagruruta upang subaybayan ang mga pangalawang replika sa mga configuration na Always On.

7. Pinakamahuhusay na Kasanayan sa Paggamit ng Activity Monitor

Ang pagsunod sa pinakamahuhusay na kagawian ay tinitiyak na makakakuha ka ng maximum na halaga mula sa Activity Monitor habang pinapaliit ang mga negatibong epekto sa iyong mga server.

7.1 Kailan Gagamitin ang Activity Monitor

Ang Monitor ng Aktibidad ay kumikinang sa mga partikular na sitwasyon. Gamitin ito kapag ang mga lakas nito ay naaayon sa iyong mga pangangailangan.

7.1.1 Real-Time na Mga Isyu sa Pagganap

Ang Activity Monitor ay perpekto kapag ang mga user ay kasalukuyang nakakaranas ng mga problema at kailangan mong i-diagnose kaagad ang isyu. Tinutulungan ka ng real-time na view na makita kung ano ang nangyayari ngayon.

Kapag nakatanggap ka ng tawag na "mabagal ang application," ang pagbubukas ng Activity Monitor ay dapat isa sa iyong mga unang hakbang. Mabilis mong matutukoy kung abala, naka-block, o idle ang database.

7.1.2 Pagsisiyasat ng Slowdown ng Application

Kapag naging hindi tumutugon ang isang partikular na application, tinutulungan ka ng Activity Monitor na matukoy kung ang mga isyu sa database ang dahilan. I-filter ang panel ng Mga Proseso ayon sa pangalan ng application upang makita lamang ang aktibidad ng database ng application na iyon.

Kung ang application ay hindi nagpapakita ng aktibidad sa database habang ang mga user ay nag-uulat ng mga problema, ang isyu ay nasa ibang lugar sa stack. Kung makakita ka ng malawak na pagharang o mamahaling mga query, nahanap mo na ang iyong salarin.

7.1.3 Mabilisang Pagsusuri sa Kalusugan

Ang Activity Monitor ay nagbibigay ng mahusay na dashboard para sa mabilis na pagsusuri sa kalusugan sa panahon ng regular na pangangasiwa. Buksan ito, tingnan ang mga graph ng Pangkalahatang-ideya, at i-verify na walang mukhang abnormal.

Ang mabilis na pagsusuri na ito ay tumatagal ng ilang segundo at maaaring magbunyag ng mga problema bago sila maging kritikal. Gawin itong bahagi ng iyong pang-araw-araw na gawain.

7.2 Pinakamainam na Mga Setting ng Configuration

Ang pag-configure ng Activity Monitor ay naaangkop na nagpapabuti sa pagiging kapaki-pakinabang at footprint ng mapagkukunan nito.

7.2.1 Inirerekomendang Mga Pagitan ng Pag-refresh

Itugma ang iyong agwat ng pag-refresh sa iyong layunin:

  • Aktibong pag-troubleshoot: Ang 10 segundo ay nagbibigay ng mahusay na pagtugon na may makatwirang overhead.
  • Pinalawak na pagsubaybay: Binabawasan ng 30-60 segundo ang epekto ng server sa mas mahabang panahon ng pagmamasid.
  • Diagnosis ng kritikal na isyu: Ang 5 segundo ay nagbibigay ng mataas na granularity kapag ang bawat segundo ay binibilang, ngunit gamitin nang maikli.
  • Mga regular na pagsusuri sa kalusugan: Manu-manong pag-refresh (1 oras na pagitan) kapag hindi ka aktibong nanonood.

Tandaang isara ang Activity Monitor kapag tapos na. Ang pagtatakda nito sa isang mahabang agwat at ang paglimot tungkol dito ay nag-aaksaya ng mga mapagkukunan ng server.

7.2.2 Mga Istratehiya sa Pagsala

Gumamit ng mga filter para tumuon sa nauugnay na impormasyon at bawasan ang cognitive load:

  • I-filter ang Mga Proseso ayon sa Database upang makita lamang ang aktibidad laban sa mga partikular na database.
  • Salain sa pamamagitan ng Mag-login upang subaybayan ang aktibidad ng isang partikular na user.
  • Salain sa pamamagitan ng Estado ng Gawain = RUNNING upang itago ang mga idle session.
  • Salain sa pamamagitan ng application upang ihiwalay ang trapiko mula sa mga partikular na programa.
  • Ipakita lamang ang mga NonBlanks sa Na-block Ni upang makita lamang ang mga sitwasyon ng pagharang.

7.2.3 Pagpili at Pag-uuri ng Column

Bumuo ng isang sistematikong diskarte sa pagsusuri ng data ng Activity Monitor:

  1. Start na may Pangkalahatang-ideya: Suriin ang mga graph para sa mga halatang spike o anomalya.
  2. Suriin ang Mga Proseso para sa pagharang: Pagbukud-bukurin ayon sa Session ID, pagkatapos ay hanapin ang mga value na Na-block ng.
  3. Suriin ang Mga Paghihintay sa Mapagkukunan: Pagbukud-bukurin ayon sa Cumulative Wait Time para matukoy ang mga bottleneck ng mapagkukunan.
  4. Suriin ang Mga Mamahaling Query: Pagbukud-bukurin ayon sa iba't ibang sukatan (CPU, execution, reads) upang makahanap ng iba't ibang uri ng problema.
  5. I-verify gamit ang I/O Pane: Kumpirmahin kung ang mga I/O-intensive na query ay nauugnay sa mataas na aktibidad sa disk.

7.3 Pagsasama sa Iba Pang Mga Tool

Pinakamahusay na gumagana ang Activity Monitor bilang bahagi ng isang mas malawak na toolkit sa halip na bilang isang standalone na solusyon.

7.3.1 Paggamit ng may SQL Server Profiler

Monitor ng Aktibidad at SQL Server Ang profileer ay nagpupuno ng mabuti sa isa't isa. Kapag natukoy mo ang isang may problemang session sa Activity Monitor, i-right click ito at piliin Pagsubaybay sa Proseso sa SQL Server Profiler.

Inilunsad nito ang Profiler na may mga filter na na-configure na upang makuha lamang ang aktibidad ng session na iyon. Makikita mo ang kumpletong pagkakasunud-sunod ng mga statement na naisagawa, impormasyon sa timing, at mga mensahe ng error—detalye na hindi ibinibigay ng Activity Monitor.

Upang matuto nang higit pa tungkol sa SQL Server Mga kakayahan ng profiler at advanced na mga diskarte sa pagsubaybay, tingnan ang aming komprehensibo SQL Server Gabay sa profiler.

7.3.2 Pagpupuno sa Mga Pinalawak na Kaganapan

Nag-aalok ang Extended Events ng mababang overhead, detalyadong pagsubaybay na kumukuha ng impormasyong hindi nakuha ng Monitor ng Aktibidad. Gumawa ng mga Extended na session ng Event para subaybayan ang mga partikular na event tulad ng deadlocks, matagal nang query, o sobrang recompilations.

Gamitin ang Activity Monitor para sa agarang imbestigasyon at Extended Events para sa patuloy na pagsubaybay at makasaysayang pagsusuri. Tinutugunan ng dalawang tool ang magkaibang pangangailangan.

Upang matuto nang higit pa tungkol sa SQL Server Mga kakayahan sa Extended Events at advanced na mga diskarte sa pagsubaybay, tingnan ang aming komprehensibo SQL Server Gabay sa Extended Events.

7.3.3 Mga Solusyon sa Pagsubaybay ng Third-Party

Ang mga komersyal na tool tulad ng SolarWinds Database Performance Analyzer, Redgate SQL Monitor, at Quest Spotlight ay nagbibigay ng mga feature na kulang sa Activity Monitor: alerto, historical trending, capacity planning, at automated diagnostics.

Ang mga tool na ito ay mahalagang mga karagdagan sa Activity Monitor, hindi mga kapalit. Nananatiling kapaki-pakinabang ang Monitor ng Aktibidad para sa mabilis na pagsusuri at pagsisiyasat kahit na available ang mga sopistikadong tool sa pagsubaybay.

7.4 Karaniwang Pagkakamali na Dapat Iwasan

Ang pag-unawa sa mga karaniwang pagkakamali sa Monitor ng Aktibidad ay nakakatulong sa iyong gamitin ito nang mas epektibo.

7.4.1 Pag-iwan sa Monitor ng Aktibidad na Tuloy-tuloy na Tumatakbo

M Angost Ang karaniwang pagkakamali ay ang pagbubukas ng Activity Monitor at iniiwan itong tumatakbo nang walang katapusan. Sinasayang nito ang mga mapagkukunan ng server at nagbibigay ng maliit na halaga dahil hindi ka aktibong nanonood.

Isara ang Activity Monitor kapag hindi mo ito aktibong ginagamit. Kung kailangan mo ng tuluy-tuloy na pagsubaybay, magpatupad ng wastong solusyon sa pagsubaybay na may nakaiskedyul na pangongolekta ng data sa halip.

7.4.2 Sobrang Pag-asa sa Activity Monitor Mag-isa

Ang Activity Monitor ay nagbibigay ng isang pananaw sa kalusugan ng server. Huwag umasa dito ng eksklusibo. Supplement sa Windows Performance Monitor para sa OS-level metrics, Extended Events para sa detalyadong pagsubaybay, at execution plan analysis para sa query tuning.

Tinutulungan ka ng Activity Monitor na matukoy ang mga problema, ngunit ang paglutas sa mga ito ay kadalasang nangangailangan ng mga karagdagang tool at mas malalim na pagsusuri.

Matuto nang higit pa tungkol sa SQL Server monitor ng pagganap sa aming Kumpleto na ang gabay sa.

7.4.3 Pagwawalang-bahala sa Mga Makasaysayang Trend

Ipinapakita ng Activity Monitor ang kasalukuyang estado, ngunit ang mga problema sa pagganap ay kadalasang may mga pattern na nakikita lamang sa paglipas ng panahon. Ipatupad ang makasaysayang pangongolekta ng data para maihambing mo ang mga kasalukuyang sukatan sa mga baseline at matukoy ang mga trend.

Kung walang makasaysayang konteksto, maaaring hindi mo matukoy na ang "normal" na paggamit ng CPU ngayon ay 30% na mas mataas kaysa sa baseline noong nakaraang buwan, na nagpapahiwatig ng unti-unting pagkasira.

8. Pag-troubleshoot sa Mga Isyu sa Monitor ng Aktibidad

Ang mismong Activity Monitor ay minsan nakakaranas ng mga problema. Ang pag-alam kung paano i-troubleshoot ang mga isyung ito ay pumipigil sa pagkabigo.

8.1 Hindi Magbubukas o Hindi Magpapakita ng Data ang Monitor ng Aktibidad

Kapag bumukas ang Activity Monitor ngunit nagpapakita ng mga blangkong pane o hindi bumukas, maraming salik ang maaaring maging responsable.

8.1.1 Mga Isyu sa Pahintulot

M Angost karaniwang sanhi ng mga problema sa Activity Monitor ay hindi sapat na mga pahintulot. Upang i-verify at lutasin:

  1. Suriin ang iyong mga pahintulot sa antas ng server:
    SELECT * FROM fn_my_permissions(NULL, 'SERVER')
    WHERE permission_name = 'VIEW SERVER STATE';
    
  2. Kung walang mga row na bumalik, wala kang pahintulot na VIEW SERVER STATE.
  3. Hilingin sa isang administrator ng server na ibigay ito:
    USE master;
    GRANT VIEW SERVER STATE TO [YourLogin];
    
  4. Isara at muling buksan ang Activity Monitor pagkatapos maibigay ang mga pahintulot.

8.1.2 Mga Isyu sa Pagkatugma sa Bersyon

Gamit ang lumang bersyon ng SQL Server Management Studio para kumonekta sa mas bago SQL Server bersyon ay maaaring maging sanhi ng mga pagkabigo sa Monitor ng Aktibidad. Maaaring hindi maintindihan ng tool ang mga bagong uri ng paghihintay o mga column ng view ng system.

Palaging gumamit ng bersyon ng SSMS na tumutugma o mas bago kaysa sa iyo SQL Server bersyon. Ang Microsoft ay nagbibigay ng pinakabagong SSMS bilang isang libreng pag-download na hiwalay sa SQL Server mismo.

8.1.3 Mga Isyu sa Firewall at Network

Ang Monitor ng Aktibidad ay nangangailangan ng koneksyon sa SQL Server halimbawa sa mga karaniwang port (1433 bilang default). Kung maaari kang kumonekta sa pamamagitan ng Object Explorer ngunit nabigo ang Monitor ng Aktibidad, maaaring hinaharangan ng mga panuntunan ng firewall ang mga partikular na koneksyon.

I-verify na maabot ng iyong kliyente ang SQL Server machine sa lahat ng kinakailangang port. Suriin ang parehong Windows Firewall at anumang network firewall sa pagitan ng iyong kliyente at ng server.

8.2 Aktibidad Monitor Permanenteng Naka-pause

Isang karaniwang isyu, lalo na sa SQL Server 2019, ay ang Activity Monitor na nagbubukas sa isang naka-pause na estado at tumatangging ipagpatuloy.

8.2.1 Pag-unawa sa Naka-pause na Estado

Kapag nag-pause ang Activity Monitor, ipinapakita ng lahat ng pane ang status na "Naka-pause" na may isang resume button na maaaring hindi gumana. Pinipigilan ka nitong makita ang anumang aktibidad ng server.

Karaniwang nangyayari ang naka-pause na estado dahil sa mga isyu sa pahintulot, mga paghihigpit sa malayuang koneksyon, o mga bug sa bersyon ng SSMS sa halip na isang sadyang pagkilos sa pag-pause.

8.2.2 Mga Karaniwang Dahilan

Ang Monitor ng Aktibidad ay maaaring pumasok sa permanenteng naka-pause na estado dahil sa:

  • Walang pahintulot na VIEW SERVER STATE sa mga bagong pane na idinagdag kamakailan SQL Server mga bersyon
  • Hindi pinagana ang mga malayuang koneksyon sa SQL Server halimbawa
  • Mga pagkabigo sa pagpapatotoo para sa mga partikular na query sa system
  • Mga bug sa mga partikular na build ng SSMS, partikular na 18.0 hanggang 18.3
  • Mga isyu sa koneksyon sa pagitan ng kliyente at server

8.2.3 Mga Hakbang sa Resolusyon

Upang malutas ang mga naka-pause na isyu sa estado ng Activity Monitor:

  1. I-update ang SSMS: I-download at i-install ang pinakabagong SQL Server Bersyon ng Management Studio mula sa website ng Microsoft. Maraming naka-pause na state bug ang naayos sa mga susunod na release.
  2. I-verify ang mga pahintulot: Tiyaking mayroon kang VIEW SERVER STATE at VIEW ANY DEFINITION na mga pahintulot.
  3. Suriin ang mga malayuang koneksyon: Patunayan na ang SQL Server instance ay nagbibigay-daan sa mga malayuang koneksyon:
    EXEC sp_configure 'remote access';
    

    Kung 0 ang value, hilingin sa isang administrator na paganahin ito.

  4. Restart SSMS: Minsan ay isinasara lamang ang lahat ng mga bintana at restarTing SQL Server Niresolba ng Management Studio ang isyu.
  5. Kumonekta sa Windows Authentication: Kung gumagamit ng SQL authentication, subukan ang Windows authentication sa halip, dahil minsan ay nilalampasan nito ang mga isyu sa pag-pause na nauugnay sa pagpapatotoo.

8.3 Mga Isyu sa Pagganap Kapag Gumagamit ng Activity Monitor

Kung ang mismong Monitor ng Aktibidad ay nagiging mabagal o nagiging sanhi ng pagkasira ng pagganap ng server, kailangan ang pagsasaayos.

8.3.1 Pagbawas sa Overhead ng Pagsubaybay

Para mabawasan ang epekto ng Activity Monitor:

  1. Dagdagan ang agwat ng pag-refresh sa 30 segundo o 1 minuto.
  2. Isara ang mga pane na hindi mo aktibong ginagamit sa pamamagitan ng pag-click sa button na i-collapse.
  3. Kapag ang mga pane ay na-collapse, ang Activity Monitor ay hindi nagtatanong ng data para sa kanila.
  4. Iwasang magpatakbo ng maraming instance ng Activity Monitor nang sabay-sabay.
  5. Isara nang buo ang Monitor ng Aktibidad kapag hindi aktibong nagsisiyasat ng mga isyu.

8.3.2 Alternatibong Magaang Pamamaraan sa Pagsubaybay

Kung ang Activity Monitor ay masyadong resource-intensive para sa iyong environment, isaalang-alang ang mga alternatibo:

  • Direktang tanong sa mga DMV: Sumulat ng mga partikular na query sa T-SQL na kumukuha lamang ng impormasyong kailangan mo.
  • Gumamit ng sp_WhoIsActive: Ang naka-imbak na pamamaraan na ito ay lubos na na-optimize at karaniwang may mas mababang overhead kaysa sa Activity Monitor.
  • Ipatupad ang sampling: Mag-iskedyul ng mga trabaho ng SQL Agent na kumukuha ng mga snapshot ng data ng DMV sa mga regular na pagitan, na nag-iimbak ng mga resulta sa mga talahanayan para sa pagsusuri sa ibang pagkakataon.
  • Subaybayan ang pangalawang replika: In Mga grupo ng availability na Always On, patakbuhin ang Activity Monitor laban sa isang nababasang sekundarya sa halip na sa pangunahin.

8.4 Hindi Tumpak o Nawawalang Impormasyon

Minsan ang Activity Monitor ay nagpapakita ng impormasyon na tila hindi tama o hindi kumpleto.

8.4.1 Pag-verify ng Data gamit ang mga DMV

Kapag mukhang kahina-hinala ang mga resulta ng Activity Monitor, i-verify ang mga ito sa pamamagitan ng direktang pagtatanong sa mga pinagbabatayan na DMV. Halimbawa, kung ang panel ng Mga Proseso ay nagpapakita ng walang pag-block ngunit iniulat ito ng mga user, itanong:

SELECT 
    blocking_session_id,
    session_id,
    wait_type,
    wait_time,
    wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;

Kung ang query na ito ay nagpapakita ng pagharang na hindi nakuha ng Monitor ng Aktibidad, nakumpirma mo ang isang isyu sa pagpapakita.

8.4.2 Pag-unawa sa Timing ng Pag-refresh ng Data

Tandaan na ang Activity Monitor ay nagpapakita ng mga snapshot. Ang isang query na tumakbo sa pagitan ng mga agwat ng pag-refresh ay hindi lilitaw sa Kamakailang Mga Mamahaling Query maliban kung ang plano ng pagpapatupad nito ay mananatili sa cache.

Katulad nito, ang mga istatistika ng paghihintay sa pane ng Resource Waits ay nagpapakita ng akumulasyon mula noong huling snapshot. Ang mabilis na pagbabago ng mga workload ay maaaring magpakita ng iba't ibang pattern sa bawat pag-refresh.

9. Mga Advanced na Teknik sa Pagsubaybay sa Aktibidad

Ginagamit ng mga karanasang administrator ng database ang Activity Monitor sa mga sopistikadong paraan upang makuha ang maximum na diagnosthalaga ng ic.

9.1 Pagsasama-sama ng Maramihang Pane para sa Pagsusuri ng Root Cause

Ang tunay na kapangyarihan ng Activity Monitor ay lumalabas kapag iniugnay mo ang impormasyon sa maraming pane upang maunawaan ang mga kumplikadong isyu sa pagganap.

9.1.1 Pag-uugnay ng mga Paghihintay sa Mga Proseso

Kapag ang Resource Waits pane ay nagpapakita ng matataas na oras ng paghihintay sa isang kategorya, gamitin ang Processes pane upang matukoy kung aling mga session ang nakakaranas ng mga paghihintay na iyon:

  1. Tandaan ang kategorya ng paghihintay na may mataas na pinagsama-samang oras ng paghihintay (hal., "I-lock").
  2. Lumipat sa pane ng Mga Proseso.
  3. Pagsunud-sunurin ayon Uri ng Wait sa pangkat ng mga session ayon sa kanilang kasalukuyang paghihintay.
  4. Maghanap ng mga session na nagpapakita ng mga uri ng paghihintay sa kategoryang may problema.
  5. Para sa mga sesyon na iyon, suriin ang Maghintay Resource column upang makita kung aling mga database object ang kasangkot.
  6. Mag-right-click at piliin Detalye para makita ang text ng query.

Tinutulungan ka ng ugnayang ito na lumipat mula sa "mayroon kaming mga lock na paghihintay" patungo sa "ang partikular na query na ito ay naghihintay ng mga kandado sa talahanayang ito."

9.1.2 Pag-uugnay ng Mga Mamahaling Query sa Mga Isyu sa I/O

Kapag ang Data File I/O pane ay nagpapakita ng mataas na aktibidad ng disk sa isang partikular na database:

  1. Tandaan kung aling mga database file ang may mataas na MB/sec na read or write rate.
  2. Lumipat sa Kamakailang Mga Mamahaling Query.
  3. Pagsunud-sunurin ayon Mga Pisikal na Pagbasa/seg upang matukoy ang mga query na binabasa nang husto mula sa disk.
  4. I-filter o biswal na tukuyin ang mga query na tumatakbo laban sa database na may mataas na I/O.
  5. Suriin ang mga plano sa pagpapatupad ng mga query na iyon para sa mga pag-scan ng talahanayan o nawawalang mga index na nagdudulot ng labis na I/O.

Ang multi-pane analysis na ito ay nagkokonekta ng mga sintomas (high disk I/O) sa mga sanhi (mga partikular na hindi mahusay na query).

9.2 Paggamit ng Monitor ng Aktibidad para sa Pagpaplano ng Kapasidad

Bagama't hindi nag-iimbak ng makasaysayang data ang Monitor ng Aktibidad, magagamit mo ito nang madiskarteng para sa mga obserbasyon sa pagpaplano ng kapasidad.

9.2.1 Pagkilala sa Mga Pattern ng Peak na Paggamit

Subaybayan ang aktibidad ng server sa iba't ibang oras ng araw upang matukoy ang mga pattern ng paggamit:

  1. Buksan ang Monitor ng Aktibidad sa mga kilalang oras ng negosyo.
  2. Tandaan ang mga peak value ng graph ng Oras ng Processor.
  3. Itala ang maximum na bilang ng Mga Paghihintay na Gawain.
  4. Obserbahan ang Batch Requests/seg sa peak times.
  5. Idokumento ang mga pinaka-abalang database sa pane ng Mga Proseso.
  6. Ulitin sa mga off-peak na oras para sa paghahambing.

Kung patuloy na lumalampas sa 80% ang oras ng processor ng peak-hour, lumalapit ka sa mga limitasyon ng kapasidad ng CPU. Katulad nito, ang pagtaas ng bilang ng paghihintay ay nagpapahiwatig ng lumalaking pagtatalo sa mapagkukunan.

9.2.2 Pagsusuri sa Trend ng Resource

Habang nagpapakita ng kasalukuyang estado ang Activity Monitor, magagamit mo ito para sa spot-check trending sa pamamagitan ng pagtatala ng mga pangunahing sukatan sa paglipas ng panahon:

  • Kumuha ng mga screenshot ng pane ng Pangkalahatang-ideya sa parehong oras bawat araw
  • Magtala ng mga peak value mula sa bawat graph
  • Ihambing ang linggo-sa-linggo upang matukoy ang mga trend ng paglago
  • Panoorin ang mga unti-unting pagtaas sa average na oras ng processor o mga rate ng I/O

Ang manu-manong trending na ito ay nagdaragdag ng mas sopistikadong mga solusyon sa pagsubaybay at tumutulong na bigyang-katwiran ang pagpapalawak ng kapasidad.

9.3 Pagdodokumento ng Mga Baseline ng Pagganap

Ang pagtatatag ng mga sukatan ng pagganap ng baseline ay nakakatulong sa iyong makilala kapag bumababa ang pagganap.

9.3.1 Pagkuha ng Baseline Sukatan

Sa mga panahon ng kilalang mahusay na pagganap, idokumento ang mga sukatan ng Monitor ng Aktibidad:

  1. Buksan ang Monitor ng Aktibidad sa panahon ng normal na operasyon ng negosyo (hindi peak o off-peak).
  2. Itala ang mga halaga ng pane ng Pangkalahatang-ideya:
    • Karaniwang % Saklaw ng Oras ng Processor
    • Karaniwang bilang ng Mga Paghihintay na Gawain
    • Normal na rate ng I/O ng Database
    • Mga Karaniwang Batch na Kahilingan/seg
  3. Tandaan Resource Waits pane kategorya na nagpapakita ng most oras ng paghihintay.
  4. Idokumento ang bilang ng mga aktibong proseso na karaniwang nasa panel ng Mga Proseso.
  5. Itala ang mga sukatan ng pagpapatupad ng kinatawan ng query mula sa Kamakailang Mga Mamahaling Query.

Itabi ang baseline na dokumentasyong ito para sa sanggunian sa hinaharap kapag nagsisiyasat ng mga problema sa pagganap.

9.3.2 Paghahambing ng Kasalukuyan vs Baseline na Pagganap

Kapag lumitaw ang mga isyu sa pagganap, ihambing ang kasalukuyang mga pagbabasa sa Monitor ng Aktibidad sa iyong nakadokumentong baseline:

  • Ang oras ba ng processor ay mas mataas kaysa sa baseline? Tumutok sa mga query na masinsinang CPU.
  • Ang mga gawain ba sa paghihintay ay 2-3x baseline na antas? Siyasatin ang paghihintay ng mapagkukunan.
  • Mas mataas ba ang I/O? Suriin ang Data File I/O pane at mga mamahaling query.
  • Ang mga batch request ba ay mas mababa kaysa sa baseline sa mga oras ng peak? Maghanap ng mga isyu sa pag-block o koneksyon.

Tinutulungan ka ng paghahambing na ito na matukoy kung ano ang nagbago at tumuon sa mga pagsisikap sa pag-troubleshoot nang naaangkop.

9.4 Paglikha ng Custom na Pagsubaybay sa Workflow

Bumuo ng mga sistematikong daloy ng trabaho para sa mga karaniwang senaryo ng pagsisiyasat upang matiyak ang masinsinan, nauulit na pagsusuri.

9.4.1 Hakbang-hakbang na Proseso ng Pagsisiyasat

Kapag nag-ulat ang mga user ng mga isyu sa pagganap, sundin ang isang pare-parehong daloy ng trabaho:

  1. Mabilis na pagsusuri sa kalusugan: Buksan ang Activity Monitor at i-scan ang Pangkalahatang-ideya ng mga pane graph para sa mga halatang anomalya.
  2. Suriin para sa pagharang: Palawakin ang pane ng Mga Proseso, i-filter para sa Mga NonBlanks sa column na Na-block ng.
  3. Tukuyin ang pagtatalo sa mapagkukunan: Suriin ang Resource Waits pane na pinagsunod-sunod ayon sa oras ng paghihintay.
  4. Maghanap ng mga mamahaling query: Suriin ang Kamakailang Mga Mamahaling Query na pinagsunod-sunod ayon sa CPU, pagkatapos ay mga execution, pagkatapos ay nagbabasa.
  5. Iugnay ang mga pattern ng I/O: Cross-reference ang mga mamahaling query na may aktibidad sa pane ng Data File I/O.
  6. Mga natuklasan sa dokumento: Kumuha ng mga screenshot at itala ang mga nauugnay na session ID, mga uri ng paghihintay, at mga detalye ng query.
  7. Malalim na pagsisid: Gumamit ng Profiler traces, execution plan analysis, at DMV query para sa detalyadong imbestigasyon ng mga natukoy na isyu.

9.4.2 Pamantayan sa Pagtaas

Magtatag ng pamantayan kung kailan dapat palakihin ang mga isyu kumpara sa patuloy na pagsisiyasat:

  • I-escalate kaagad: Bina-block ang mga chain na tumatagal ng >5 minuto, oras ng processor sa 100% para sa >2 minuto, mga kritikal na proseso ng system na nagpapakita ng estadong SUSPENDED.
  • Palakihin gamit ang pagsusuri: Mga paulit-ulit na mamahaling query na kumokonsumo ng >50% CPU, pare-parehong mataas na oras ng pagtugon ng I/O >50ms, paulit-ulit na nabigo ang mga memory grant.
  • Magsiyasat pa: Tuhnrary naghihintay ng pagresolba sa loob ng ilang minuto, mga query na may suboptimal na mga plano ngunit katanggap-tanggap na performance, minor blocking <30 segundo ang tagal.

10. Activity Monitor sa Iba't ibang SQL Server Mga bersyon

Ang Monitor ng Aktibidad ay umunlad sa kabuuan SQL Server mga bersyon, sa bawat paglabas ay nagdadala ng mga pagpapahusay at paminsan-minsan ay mga bagong isyu.

10.1 Monitor ng Aktibidad sa SQL Server 2008 at Mamaya

SQL Server Ipinakilala ng 2008 ang modernong disenyo ng Activity Monitor na nananatiling halos hindi nagbabago ngayon.

10.1.1 Mga Bagong Tampok na Ipinakilala sa SQL Server 2008

Ang SQL Server 2008 Activity Monitor redesign ay nagdala ng makabuluhang mga pagpapabuti:

  • Graphical na dashboard na may mga real-time na chart sa pane ng Pangkalahatang-ideya
  • Napapalawak/na-collapsible na interface ng pane na pinapalitan ang lumang grid-only na view
  • Kamakailang Mamahaling Query pane na nagpapakita ng pinagsama-samang data ng pagganap ng query
  • Data File I/O pane para sa bawat file na pagsubaybay sa aktibidad ng disk
  • Pane ng Enhanced Resource Waits na may pagkakategorya ng paghihintay
  • I-right-click ang mga menu ng konteksto para sa mga pagkilos na proseso tulad ng pagpatay sa mga session at paglulunsad ng Profiler
  • Nako-configure ang mga agwat ng pag-refresh mula 1 segundo hanggang 1 oras

Binago ng mga pagbabagong ito ang Activity Monitor mula sa isang simpleng listahan ng proseso tungo sa isang komprehensibong dashboard ng pagsubaybay.

10.1.2 Mga pagbabago mula sa SQL Server 2005

SQL Server Ang Monitor ng Aktibidad ng 2005 ay mas limitado:

  • Na-access sa pamamagitan ng folder ng Pamamahala sa Object Explorer kaysa sa toolbar
  • Isang grid na nagpapakita ng listahan ng proseso na may pangunahing impormasyon
  • Walang mga graphical na chart o maraming pane
  • Walang mamahaling query o pagsubaybay sa I/O
  • Limitadong impormasyon sa istatistika ng paghihintay

Ang 2008 na muling disenyo ay kumakatawan sa isang kumpletong reimagining sa halip na isang incremental na pagpapabuti.

10.2 Monitor ng Aktibidad sa SQL Server 2014/2016

SQL Server Ang 2014 at 2016 ay gumawa ng mga incremental na pagpapabuti sa pinagbabatayan na pangongolekta ng data ng Activity Monitor ngunit kakaunting visual na pagbabago.

10.2.1 Mga Pagpapabuti at Pagpapahusay

Kasama sa mga pangunahing pagpapabuti sa mga bersyong ito ang:

  • Mas mahusay na pagganap kapag sinusubaybayan ang mga server na may libu-libong mga naka-cache na plano
  • Pinahusay na mga kakayahan sa pag-filter sa pane ng Mga Proseso
  • Pinahusay na katumpakan ng pagsasama-sama ng mga istatistika ng paghihintay
  • Mas mahusay na paghawak ng pag-uuri at pag-filter ng column na may malalaking hanay ng resulta
  • Mas mahusay na mga query sa DMV na binabawasan ang overhead ng pagsubaybay

Ang pangunahing interface ay nanatiling pare-pareho sa SQL Server 2008, pinapanatili ang pamilyar para sa mga administrador.

10.3 Monitor ng Aktibidad sa SQL Server 2019/2022

kamakailan lamang SQL Server nagpapatuloy ang mga bersyon sa ebolusyon ng Activity Monitor na may pagtuon sa pagganap at katatagan.

10.3.1 Pinakabagong Mga Tampok at Kakayahan

SQL Server Kasama sa 2019 at 2022 Activity Monitor ang:

  • Suporta para sa mga bagong uri ng paghihintay na ipinakilala sa mga bersyong ito
  • Pinahusay na pagganap ng pag-render sa SSMS gamit ang teknolohiyang WPF
  • Mas mahusay na paghawak ng malaking bilang ng mga aktibong session
  • Pinahusay na pagiging tugma sa mga cloud SQL platform
  • Mas tumpak na mga sukatan ng CPU at I/O

10.3.2 Mga Kilalang Isyu sa Mga Kamakailang Bersyon

SQL Server Ipinakilala ng 2019 ang ilang mga bug ng Activity Monitor:

  • Permanenteng Naka-pause na Estado: Ang Monitor ng Aktibidad ay madalas na pumapasok sa naka-pause na estado at hindi magpapatuloy, lalo na sa SSMS 18.0-18.3. Naayos sa mga susunod na bersyon ng SSMS.
  • Mga Pagkabigo sa Remote Connection: Pinipigilan ng ilang configuration ang pagbukas ng Activity Monitor sa mga malalayong pagkakataon. Kasama sa mga workaround ang pagpapagana ng mga partikular na trace flag o paggamit ng mas bagong mga build ng SSMS.
  • Mga Isyu sa Pahintulot: Ang mga bagong view ng system ay nangangailangan ng mga karagdagang pahintulot na hindi malinaw na naidokumento, na nagiging sanhi ng mga blangkong display kahit na may VIEW SERVER STATE.

Palaging gamitin ang pinakabagong bersyon ng SSMS kapag nagtatrabaho kasama SQL Server 2019 at 2022 para maiwasan ang mga isyung ito.

11. Mga Praktikal na Kaso at Mga Halimbawa

Ipinapakita ng mga real-world na halimbawa kung paano epektibong ilapat ang Activity Monitor sa mga karaniwang senaryo sa pag-troubleshoot.

11.1 Pag-aaral ng Kaso: Pag-diagnose ng Mabagal na Web Application

Ang isang development team ay nag-uulat na ang kanilang web application ay naging hindi katanggap-tanggap na mabagal, na ang pag-load ng pahina ay tumatagal ng 20-30 segundo sa halip na ang normal na 2-3 segundo.

11.1.1 Paunang Pagsisiyasat na may Pane ng Pangkalahatang-ideya

Buksan ang Monitor ng Aktibidad at suriin ang pane ng Pangkalahatang-ideya:

  1. Ang graph ng % na Oras ng Processor ay nagpapakita ng 85-95% na paggamit ng CPU, na mas mataas kaysa sa normal na 30-40% na baseline.
  2. Ang Mga Paghihintay na Gawain ay nagbabago sa pagitan ng 10-20 na gawain, kumpara sa isang normal na baseline na 0-3.
  3. Ang Database I/O ay nagpapakita ng katamtamang aktibidad sa paligid ng 50 MB/s.
  4. Ang Mga Batch na Kahilingan/seg ay mas mababa kaysa sa inaasahan sa 100/seg, kumpara sa karaniwang 300-400/seg sa mga oras ng negosyo.

Iminumungkahi ng pattern na ito ang bottleneck ng CPU na may pagtatalo sa mapagkukunan na nagdudulot ng pagbawas sa throughput. Nagsusumikap ang server ngunit hindi nagpoproseso ng maraming kahilingan.

11.1.2 Pagkilala sa Problemadong Query

Palawakin ang pane ng Recent Expensive Query at pag-uri-uriin ayon sa Mga Pagpapatupad/min:

  1. Ang nangungunang query ay nagpapakita ng 15,000 execution kada minuto.
  2. Mag-right-click at piliin I-edit ang Query Text upang suriin ang tanong.
  3. Ang query ay isang simpleng SELECT statement na kumukuha ng isang tala ng user: SELECT * FROM Users WHERE UserId = @UserId.
  4. Ang query na ito ay hindi dapat magsagawa ng 15,000 beses bawat minuto para sa normal na paggamit ng application.

I-right-click ang query at piliin Ipakita ang Plano ng Pagpapatupad. Nagpapakita ang plano ng pag-scan ng talahanayan sa talahanayan ng Mga User na may babala tungkol sa nawawalang index sa column ng UserId.

I-filter ang panel ng Mga Proseso ayon sa Application upang ipakita lamang ang mga koneksyon ng web application. Ipinapakita ng maraming session ang parehong query na ito na tumatakbo nang paulit-ulit.

11.1.3 Resolusyon at Pagpapatunay

Ang problema ay nagmumula sa dalawang isyu: labis na pagpapatupad ng query at isang nawawalang index. Mga hakbang sa paglutas:

  1. Lumikha ng nawawalang index:
    CREATE NONCLUSTERED INDEX IX_Users_UserId 
    ON Users (UserId);
    
  2. Makipag-ugnayan sa development team tungkol sa labis na pagbitay. Ang pagsisiyasat ay nagpapakita ng isang N+1 na problema sa query sa application code kung saan kinukuha ng isang loop ang mga detalye ng user para sa bawat item sa isang listahan.
  3. Baguhin ang application upang i-batch ang mga paghahanap ng user sa isang query gamit ang isang IN clause o parameter na may halaga sa talahanayan.
  4. I-verify ang pag-aayos sa pamamagitan ng pagsubaybay sa Activity Monitor pagkatapos ng deployment. Ang paggamit ng CPU ay bumaba sa 35-40%, ang mga execution bawat minuto ay bumaba sa 200-300, at ang mga oras ng pagtugon sa application ay bumalik sa normal.

11.2 Pag-aaral ng Kaso: Paglutas ng Isyu sa Pagharang

Iniulat ng mga gumagamit na ang sistema ng pagpasok ng order ay pana-panahong nagyeyelo sa loob ng 30-60 segundo bago ipagpatuloy ang normal na operasyon.

11.2.1 Pag-detect sa Blocking Chain

Buksan ang Monitor ng Aktibidad sa panahon ng isa sa mga kaganapang ito sa pag-freeze at palawakin ang pane ng Mga Proseso:

  1. Pagsunud-sunurin ayon ID ng Session para makitang nakaayos ang lahat ng session.
  2. Ipinapakita ng maraming session ang mga halaga sa Na-block Ni column, lahat ay tumuturo sa Session ID 73.
  3. Ang Session 73 ay nagpapakita ng '1' sa Head Blocker column, na nagpapatunay na ito ang ugat.
  4. Ang Uri ng Wait para sa mga naka-block na session ay nagpapakita ng LCK_M_X, na nagpapahiwatig na naghihintay sila ng mga eksklusibong lock.
  5. Ang Maghintay Resource ipinapakita ng column na ang pagharang ay nasa talahanayan ng Mga Order.

11.2.2 Pagsusuri sa Sanhi

I-right-click ang Session 73 at piliin Detalye upang tingnan ang utos:

UPDATE Orders 
SET Status = 'Processing', 
    LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);

Ang update na ito ay bahagi ng isang batch processing job na tumatakbo kada oras. Sinusuri ang Mag-login kinumpirma ng column na ang session ay kabilang sa batch processing service account.

Ang query ay may hawak na mga kandado sa talahanayan ng Mga Order habang pinoproseso ang libu-libong mga order. Ang Oras ng Paghintay para sa mga naka-block na session ay patuloy na tumataas, na nagpapatunay na ang matagal na operasyong ito ang problema.

11.2.3 Pagpapatupad ng Pag-aayos

Panandaliang resolusyon:

  1. Mga detalye ng Document Session 73 kasama ang query text at tagal.
  2. Payagan ang pag-update na natural na makumpleto dahil ito ay lehitimong batch processing.
  3. Pagkatapos makumpleto, i-verify na malinaw ang mga naka-block na session at magpapatuloy ang normal na operasyon.

Mga pangmatagalang solusyon na ipinatupad:

  1. I-reschedule ang batch job upang tumakbo sa mga oras na wala sa peak (2-4 AM sa halip na sa mga oras ng negosyo).
  2. Baguhin ang batch processing upang i-update ang mga order sa mas maliliit na batch ng 100 record sa isang pagkakataon, na naglalabas ng mga lock sa pagitan ng mga batch.
  3. Magdagdag ng index sa hanay ng OrderId upang mapabilis ang pagpapatakbo ng pag-update.
  4. Isaalang-alang ang paghihiwalay ng SNAPSHOT para sa mga read operation upang mabawasan ang epekto ng pagharang.

11.3 Pag-aaral ng Kaso: Pagkilala sa Labis na Pagpapatupad ng Query

Ipinapakita ng pagsubaybay sa database na unti-unting tumaas ang paggamit ng CPU sa nakalipas na buwan, ngunit walang halatang pagbabago ang naganap sa code ng aplikasyon.

11.3.1 Bigyang-pansin ang mga Abnormal na Pagpapatupad

Buksan ang Monitor ng Aktibidad at suriin ang pane ng Recent Expensive Query:

  1. Pagsunud-sunurin ayon Mga pagbitay/min upang makita ang most madalas na isinasagawang mga query.
  2. Ang nangungunang query ay nagpapakita ng 37,000 execution kada minuto—mas mataas kaysa sa anumang iba pang query.
  3. Mag-right-click at piliin I-edit ang Query Text.
  4. Kinukuha ng query ang impormasyon ng kategorya ng produkto:
    SELECT CategoryId, CategoryName 
    FROM ProductCategories 
    WHERE CategoryId = @CategoryId;
    
  5. Ang simpleng query na ito ay dapat na mabilis at na-cache, ngunit ito ay nagsasagawa ng libu-libong beses bawat minuto.

11.3.2 Pagsubaybay sa Application Code

Sa pane ng Mga Proseso, hanapin ang mga session na nagpapatupad ng query na ito:

  1. Tandaan ang application ipinapakita ng column ang “ProductCatalogService”.
  2. I-right-click ang isa sa mga session na ito at piliin Pagsubaybay sa Proseso sa SQL Server Profiler.
  3. Inihayag ng SQL Profiler ang query na paulit-ulit na isinasagawa nang sunud-sunod na may iba't ibang mga halaga ng CategoryId.
  4. Makipag-ugnayan sa development team na namamahala sa ProductCatalogService para sa pagsusuri ng code.

Ang pagsusuri sa code ay nagpapakita ng problema: isang kamakailang pagbabago ang kumukuha ng mga listahan ng produkto na may mga kategorya. Para sa bawat produkto sa set ng resulta (kadalasan ay 1,000+ na produkto), gumagawa ang code ng hiwalay na tawag sa database upang kunin ang impormasyon ng kategorya—isang klasikong N+1 na problema sa query.

11.3.3 Pag-optimize ng Application

Magpatupad ng tamang pag-aayos:

  1. Baguhin ang query ng application upang gumamit ng SUMALI sa pagkuha ng mga produkto at ang kanilang mga kategorya sa isang tawag sa database:
    SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName
    FROM Products p
    INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId
    WHERE p.Active = 1;
    
  2. I-deploy ang na-update na code at subaybayan ang Activity Monitor.
  3. I-verify ang pag-aayos: Ang mga execution kada minuto para sa query ng kategorya ay bumaba mula 37,000 hanggang sa mas mababa sa 100, at ang pangkalahatang paggamit ng CPU ay bumaba ng 40%.
  4. Idokumento ang natutunan at ibahagi sa development team para maiwasan ang mga katulad na isyu sa mga pagbabago sa code sa hinaharap.

12. Tuklasin ang Potensyal na Korapsyon sa Database

Bagama't hindi partikular na idinisenyo ang Activity Monitor upang makita ang katiwalian sa database, maaaring magmungkahi ang ilang partikular na pattern sa display nito ng mga pinagbabatayan na isyu sa katiwalian na nangangailangan ng karagdagang pagsisiyasat.

12.1 Mga Sintomas ng Potensyal na Korapsyon sa Database

Kung umiiral ang katiwalian sa database at ina-access, maaari mong makita paminsan-minsan:

1. Sa Pane ng Mga Proseso:

  • Ang mga session ay natigil sa SUSPENDED na estado na may mga hindi pangkaraniwang uri ng paghihintay
  • Mga prosesong nagpapakita ng mga estado ng error
  • Paulit-ulit na nabigo ang mga query

2. Sa Resource Waits Pane:

  • Hindi pangkaraniwang mga uri ng paghihintay na nauugnay sa I/O na maaaring magpahiwatig ng mga problema sa disk (bagaman mas malamang na nagpapahiwatig ito ng mga isyu sa hardware kaysa sa lohikal na katiwalian)

3. Sa Mga Kamakailang Mamahaling Query:

  • Mga query na may abnormal na mataas na pisikal na pagbabasa kung paulit-ulit nilang sinusubukang basahin ang mga sirang pahina

12.2 Karagdagang Suriin sa DBCC CHECKDB

Kapag nagpakita ang Activity Monitor ng mga sintomas na nagmumungkahi ng potensyal na katiwalian, dapat mong agad na patakbuhin ang DBCC CHECKDB upang i-verify ang integridad ng database. Ini-scan ng command na ito ang lahat ng mga pahina ng database, pinapatunayan ang mga checksum, at sinusuri ang mga error sa lohikal na pagkakapare-pareho.

Upang matuto nang higit pa tungkol sa kung paano gamitin ang DBCC CHECKDB upang suriin at ayusin ang mga katiwalian sa database, tingnan ang aming komprehensibong gabay ng DBCC CHECKDB.

12.3 Pag-aayos gamit ang Mga Propesyonal na Tool

Kung kinumpirma ng DBCC CHECKDB ang katiwalian sa database, mayroon kang ilang mga opsyon para sa pagkumpuni:

13. Konklusyon

SQL Server Ang Activity Monitor ay nakatayo bilang isang napakahalagang tool para sa mga administrator ng database, na nagbibigay ng mga agarang insight sa pagganap ng server at tumutulong sa pag-diagnose ng mga isyu nang mabilis at epektibo.

13.1 Buod ng Mga Pangunahing Punto

Sa buong gabay na ito, ginalugad namin kung paano ka tinutulungan ng Activity Monitor na maunawaan at mag-troubleshoot SQL Server pagganap:

  • Ang Activity Monitor ay nagbibigay ng real-time na visibility sa mga proseso, paghihintay, mga query, at I/O sa pamamagitan ng isang organisado, graphical na interface.
  • Ang limang pane—Pangkalahatang-ideya, Mga Proseso, Paghihintay sa Resource, I/O ng Data File, at Kamakailang Mamahaling Query—bawat isa ay nag-aalok ng mga natatanging pananaw sa aktibidad ng server.
  • Ang mga karaniwang senaryo sa pag-troubleshoot tulad ng labis na pagpapatupad ng query, pag-block ng mga chain, at mataas na paggamit ng CPU ay nagiging mapapamahalaan sa sistematikong pagsisiyasat ng Activity Monitor.
  • Bagama't malakas, ang Monitor ng Aktibidad ay may mga limitasyon kabilang ang kakulangan ng makasaysayang data, pagpapangkat ng uri ng paghihintay, at overhead ng pagsubaybay na nakakaapekto sa appli nito.cability.
  • Ang pagdaragdag ng Activity Monitor na may mga query sa DMV, sp_WhoIsActive, Extended Events, at potensyal na third-party na tool ay lumilikha ng isang komprehensibong diskarte sa pagsubaybay.
  • Ang pagsunod sa pinakamahuhusay na kagawian para sa mga agwat ng pag-refresh, pagsasara ng Monitor ng Aktibidad kapag hindi ginagamit, at pagsasama-sama ng maramihang mga pane para sa ugnayan ay nagpapalaki sa halaga nito habang pinapaliit ang epekto.

13.2 Monitor ng Aktibidad bilang Bahagi ng Iyong Toolkit

Ang Activity Monitor ay dapat magsilbing iyong unang tool sa pagtugon para sa mga pagsisiyasat sa pagganap, hindi ang iyong tanging tool. Ang lakas nito ay nakasalalay sa pagbibigay ng agarang visibility sa panahon ng aktibong pag-troubleshoot, na tumutulong sa iyong mabilis na matukoy kung ang database ang bottleneck at tukuyin kung aling mga partikular na aspeto ang nangangailangan ng mas malalim na pagsisiyasat.

Isipin na ang Activity Monitor ay kahalintulad sa isang dashboard sa iyong sasakyan—sinasabi nito kaagad sa iyo kung may mali at tinutulungan kang matukoy ang pangkalahatang lugar ng pag-aalala. Kung paanong hindi eksaktong sinasabi sa iyo ng dashboard ng iyong sasakyan kung bakit lumiwanag ang ilaw ng check engine, itinuturo ka ng Activity Monitor sa mga problema nang hindi palaging inilalantad ang kanilang kumpletong dahilan. Nangangailangan ang mas malalim na pagsusuri na iyon ng mga karagdagang tool at kadalubhasaan.

Isama ang Monitor ng Aktibidad sa isang mas malawak na toolkit na kinabibilangan ng pagsusuri sa plano ng pagpapatupad, pagsubaybay sa mga istatistika ng paghihintay, mga makasaysayang solusyon sa pagsubaybay, at mga pinakamahusay na kagawian sa pagganap. Gamitin ito kasabay ng wastong mga diskarte sa pag-index, mga diskarte sa pag-optimize ng query, at pagpaplano ng kapasidad.

13.3 Pagpapatuloy ng Iyong Paglalakbay sa Pag-aaral

Ang Mastering Activity Monitor ay isang hakbang lamang sa pagiging isang epektibong database administrator. Ipagpatuloy ang pagbuo ng iyong mga kasanayan sa pamamagitan ng:

  • Pag-aaral na bigyang-kahulugan ang mga plano sa pagpapatupad at tukuyin ang mga hindi mahusay na operasyon
  • Unawa sa SQL Server mga istatistika ng paghihintay at ang kanilang mga implikasyon
  • Pag-aaral ng index design at optimization techniques
  • paggalugad SQL Serverarkitektura at kung paano ito nagpoproseso ng mga query
  • Pagsasanay ng mga sistematikong pamamaraan ng pag-troubleshoot
  • Karanasan sa pagbuo ng Extended Events para sa detalyadong pagsubaybay
  • Pag-unawa sa mga antas ng paghihiwalay ng transaksyon at epekto ng kanilang pagganap

Ang bawat pagsisiyasat sa pagganap gamit ang Activity Monitor ay nagtuturo sa iyo ng bago tungkol sa kung paano SQL Server gumagana at kung paano nakikipag-ugnayan ang mga application sa mga database. Idokumento ang iyong mga natuklasan, magbahagi ng kaalaman sa mga kasamahan, at bumuo ng library ng mga solusyon para sa mga karaniwang problema.

13.4 Karagdagang Mga Mapagkukunan

Palawakin ang iyong kaalaman gamit ang mahahalagang mapagkukunang ito:

14. Mga Madalas Itanong (FAQ)

Q: Ano ang SQL Server ActivityMonitor?

A: SQL Server Ang Activity Monitor ay isang built-in na tool sa loob SQL Server Management Studio na nagpapakita ng real-time na impormasyon tungkol sa mga prosesong tumatakbo sa a SQL Server halimbawa at ang epekto nito sa mga mapagkukunan ng server. Nagbibigay ito ng graphical na dashboard na may limang pane na nagpapakita ng iba't ibang aspeto ng aktibidad ng server kabilang ang paggamit ng processor, mga gawain sa paghihintay, mga rate ng I/O, mga aktibong session, at mga mamahaling query.

Q: Paano ko bubuksan ang Activity Monitor sa SSMS?

A: Maaari mong buksan ang Activity Monitor gamit ang apat na paraan: (1) I-click ang icon ng Activity Monitor sa toolbar ng SSMS, (2) I-right-click ang iyong SQL Server pangalan ng halimbawa sa Object Explorer at piliin Aktibo Monitor, (3) Pindutin ang Ctrl + Alt + A, o (4) I-configure ang SSMS upang awtomatikong ilunsad ito sa pamamagitan ng Kagamitan -> Options -> kapaligiran -> Startubo.

Q: Anong mga pahintulot ang kailangan ko para magamit ang Activity Monitor?

A: Kailangan mo ang TINGNAN ANG ESTADO NG SERVER pahintulot na makita most Impormasyon sa Monitor ng Aktibidad. Para sa Data File I/O pane, kailangan mo rin ng alinman GUMAWA NG DATABASE, BAGUHIN ANG ANUMANG DATABASE, O TINGNAN ANG ANUMANG DEPINISYON mga pahintulot. Kung wala ang mga pahintulot na ito, maaaring magbukas ang Monitor ng Aktibidad ngunit magpakita ng mga blangkong pane.

T: Bakit naka-pause o hindi gumagana ang aking Activity Monitor?

A: Karaniwang naka-pause ang Monitor ng Aktibidad dahil sa mga isyu sa pahintulot, mga lumang bersyon ng SSMS, o hindi pinaganang malayuang koneksyon. Upang malutas: (1) Mag-update sa pinakabagong bersyon ng SSMS, (2) I-verify na mayroon kang pahintulot na VIEW SERVER STATE, (3) Suriin na ang mga malalayong koneksyon ay pinagana sa SQL Server halimbawa, (4) Restart SSMS, at (5) Subukang kumonekta sa Windows authentication sa halip na SQL authentication kung naaangkopcabang.

Q: Ano ang pagkakaiba sa pagitan ng Activity Monitor at sp_WhoIsActive?

A: Ang Activity Monitor ay isang graphical na tool na binuo sa SSMS na nagbibigay ng mga organisadong pane para sa iba't ibang aspeto ng pagsubaybay. Ang sp_WhoIsActive ay isang libreng naka-imbak na pamamaraan na nilikha ng komunidad na nagbabalik ng detalyadong impormasyon ng session sa isang set ng resulta na may mas partikular na mga uri ng paghihintay, mga detalye ng pag-block, at mga opsyon sa pag-customize kaysa sa Activity Monitor. Ang Monitor ng Aktibidad ay mas mahusay para sa visual na paggalugad, habang ang sp_WhoIsActive ay mahusay sa scripted na pagsubaybay at nagbibigay ng mas detalyadong impormasyon.

T: Nakakaapekto ba ang Activity Monitor sa performance ng server?

A: Oo, ang Activity Monitor ay may nasusukat na overhead dahil nagtatanong ito ng mga DMV ng system sa bawat agwat ng pag-refresh. Ang epekto ay tumataas nang may mas mababang mga rate ng pag-refresh—Nagbabala ang Microsoft na ang mga pagitan sa ibaba ng 10 segundo ay maaaring makaapekto sa pagganap ng server. Palaging isara ang Monitor ng Aktibidad kapag hindi ito aktibong ginagamit, at isaalang-alang ang 30-60 segundong agwat ng pag-refresh sa mga server ng produksyon sa ilalim ng mabigat na pagkarga.

T: Maaari ba akong makakuha ng data ng Activity Monitor gamit ang T-SQL?

A: Oo, ang Activity Monitor ay nagtatanong ng mga view ng dynamic na pamamahala ng system tulad ng sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats, at sys.dm_exec_query_stats. Maaari mong i-query ang mga DMV na ito nang direkta gamit ang T-SQL upang makuha ang katumbas na impormasyon sa programmatically, pagpapagana ng mga custom na script ng pagsubaybay at awtomatikong pagkolekta ng data.

Q: Ano ang default na agwat ng pag-refresh?

A: Ang default na agwat ng pag-refresh ay 10 segundo. Mababago mo ito sa pamamagitan ng pag-right-click saanman sa pane ng Pangkalahatang-ideya, pagpili I-refresh ang pagitan, at pagpili sa mga paunang natukoy na opsyon: 1 segundo, 5 segundo, 10 segundo, 30 segundo, 1 minuto, o 1 oras. Ang mas mababang mga agwat ay nagbibigay ng mas maraming real-time na view ngunit pinapataas ang overhead ng pagsubaybay.

T: Paano ko awtomatikong mabubuksan ang Activity Monitor sa SSMS startup?

A: I-configure ang awtomatikong paglulunsad sa pamamagitan ng mga opsyon sa SSMS: Mag-navigate sa Kagamitan -> Options -> kapaligiran -> Startubo, Pagkatapos ay piliin Buksan ang Object Explorer at Activity Monitor mula sa Sa startubo dropdown. Awtomatikong magbubukas ang Activity Monitor sa tuwing kumonekta ka sa isang server sa SSMS.

Q: Ano ang mga limitasyon ng Activity Monitor?

A: Kabilang sa mga pangunahing limitasyon ang: (1) Walang makasaysayang pag-iimbak ng data o mga kakayahan sa trending, (2) Ang mga uri ng paghihintay ay pinagsama-sama sa mga kategorya sa halip na partikular na ipinapakita, (3) Ang ilang mga uri ng paghihintay tulad ng CXPACKET ay maaaring hindi lumabas, (4) Ang mga point-in-time na snapshot ay maaaring makaligtaan ng mga lumilipas na isyu, (5) Ang overhead ng pagsubaybay ay maaaring makaapekto sa mga busy na server, (6) Walang maaaring mag-alerto, at mekanismo ng proactive para sa proactive na data (7) SQL Server mga pagkakataon. Para sa mga pangangailangang ito, dagdagan ang Monitor ng Aktibidad ng Mga Pinalawak na Kaganapan, mga set ng pangongolekta ng data, o mga tool sa pagsubaybay ng third-party.


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 performance. Kabilang sa kanyang malawak na praktikal na karanasan ang pamamahala ng mga multi-terabyte na database, pagpapatupad ng Always On Availability Groups, at pagbuo ng mga automated na diskarte sa backup at recovery para sa mga mission-critical na business system.

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.

Ipamahagi ngayon: