Zabbix erabiliz MS SQL Server datu-basea kontrolatzeko

hitzaurrea

Askotan datu-basearekin (datu-basearekin) lotutako arazoen berri eman beharra dago administratzaileari denbora errealean.

Artikulu honek Zabbix-en konfiguratu behar dena deskribatuko du MS SQL Server datu-basea kontrolatzeko.

Zure arreta deitzen dizut nola konfiguratu zehatz-mehatz ez dela emango, hala ere, formulak eta gomendio orokorrak, baita gordetako prozeduren bidez datu pertsonalizatuen elementuak gehitzearen deskribapen zehatza ere artikulu honetan emango direla.
Gainera, hemen errendimendu-kontagailu nagusiak bakarrik hartuko dira kontuan.

Erabaki

Lehenik eta behin, behar ditugun errendimendu-kontagailu guztiak (Zabbixeko elementuen bidez) deskribatuko ditut:

  1. Disko logikoa
    1. Batez besteko diskoa seg/Irakurri
      Diskoko datuak irakurtzeko segundotan batez besteko denbora erakusten du. Batez besteko errendimendu-kontagailuaren batez besteko balioa. Diskoaren seg/irakurketa ez da 10 milisegundo baino gehiago izan behar. Batez besteko errendimendu-kontagailuaren gehienezko balioa. Disko seg/Irakurri ezin da 50 milisegundo baino gehiago izan.

      Zabbix: perf_counter[LogicalDisk(_Total)Abg. Disk seg/Irakurri], eta nahi duzun diskoaren jarraipena egitea ere garrantzitsua da, adibidez: perf_counter[LogicalDisk(C:)Avg. Disko seg/Irakurri]

      Trigger Adibideak:
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Abg. Disko seg/Irakurri].last()}>0.005, maila altua
      ΠΈ
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Abg. Disko seg/Irakurri].last()}>0.0025, maila-ertaina

    2. Batez besteko diskoaren seg/idazketa
      Datuak diskoan idazteko batez besteko denbora segundotan erakusten du. Batez besteko errendimendu-kontagailuaren batez besteko balioa. Disk seg/Write-k ez du 10 milisegundo baino gehiago izan behar. Batez besteko errendimendu-kontagailuaren gehienezko balioa. Disk seg/Write-k ez du 50 milisegundo baino gehiago izan behar.

      Zabbix: perf_counter[LogicalDisk(_Total)Abg. Disk sec/Write], eta nahi duzun diskoaren jarraipena egitea ere garrantzitsua da, adibidez: perf_counter[LogicalDisk(C:)Avg. Disko seg/Idatzi]

      Trigger Adibideak:
      {NOTE_NAME:perf_counter[LogicalDisk(_Total)Abg. Disko seg/Write].last()}>0.005, maila altua
      ΠΈ
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Abg. Disk seg/Write].last()}>0.0025, maila-ertaina

    3. Disko ilararen batez besteko luzera

      Diskorako eskaera-ilararen batez besteko luzera. Zehaztutako denbora-tarte batean zain dauden disko-eskaeren kopurua bistaratzen du. Ilara arrunta ez da 2 baino gehiago disko bakarrerako. Ilaran bi eskaera baino gehiago badaude, seguruenik diskoa gainkargatuta dago eta ez du astirik izango sarrerako eskaerak prozesatzeko. Batez besteko kontagailuak erabil ditzakezu diskoak zer eragiketa kudeatu ezin dituen jakiteko. Diskoaren irakurketa ilararen luzera (irakurketa-eskaeraren ilara) eta batez bestekoa. Disk Wright Queue Length (idazketa eskaera ilara).
      Batez besteko balioa. Disko-ilararen luzera ez da neurtzen, Little-ren legearen arabera kalkulatzen da ilaren teoria matematikotik. Lege horren arabera, izapidetzeko zain dauden eskaeren kopurua, batez beste, jasotako eskaeren maiztasuna berdina da, eskaeraren tramitazio denboraz biderkatuta. Horiek. gure kasuan Avg. Disko-ilararen luzera = (Disko transferentziak/seg) * (Disko segundo/transferentzia batez beste).

      abuztua. Disko-ilararen luzera kontagailu nagusietako bat bezala ematen da disko azpisistemaren lan-karga zehazteko, hala ere, behar bezala kalkulatzeko, beharrezkoa da biltegiratze-sistemaren egitura fisikoa zehaztasunez irudikatzea. Adibidez, disko gogor bakarrerako, 2 baino handiagoa den balioa kritikotzat jotzen da, eta diskoa 4 diskoko RAID array batean badago, orduan kezkatu beharko zenuke balioa 4 * 2 = 8 baino handiagoa bada.

      Zabbix: perf_counter[LogicalDisk(_Total)Abg. Disk Queue Length], eta nahi duzun diskoaren jarraipena egitea ere garrantzitsua da, adibidez: perf_counter[LogicalDisk(C:)Avg. Disko ilararen luzera]

  2. Memoria
    1. Orrialdeak/seg
      Sarbiderako unean memoria nagusian kargatu ez ziren memoria orrietarako sarbideak ebazteko SQL Server-ek diskotik irakurri edo diskora idatzi dituen orrialde kopurua erakusten du. Balio hau Pages Input/sec eta Pages Output/seg balioen batura da, eta aplikazioaren datu-fitxategietara sartzeko sistemaren cachearen orria (trukatzea/trukatzea) ere hartzen du kontuan. Cachean gordeta ez dauden zuzenean memorian mapatutako fitxategien orrialdea ere barne hartzen du. Hau da ikusi beharreko kontagailu nagusia memoria-erabilera handia eta erlazionatutako gehiegizko orrialdea jasaten ari bazara. Kontagailu honek trukearen zenbatekoa ezaugarritzen du eta bere balio normala (ez gailurra) zerotik gertu egon behar da. Trukearen gehikuntzak RAM handitu edo zerbitzarian exekutatzen diren aplikazioen kopurua murriztu beharra adierazten du.

      Zabbix: perf_counter[MemoryPages/seg] Trigger Adibidea:
      {NOTE_NAME:perf_counter[MemoryPages/sec].min(5m)}>1000, maila-informazioa

    2. Orriaren akatsak/seg

      Hau da orriaren akatsen kontagailuaren balioa. Orri-matxura bat gertatzen da prozesu batek RAM lan-multzoan ez dagoen memoria birtual-orri bati erreferentzia egiten dionean. Kontadore honek kontuan hartzen ditu diskorako sarbidea behar duten orrialde akatsak eta orrialdea RAM-en lan multzotik kanpo egoteak eragindakoak. Prozesadore gehienek atzerapen handirik gabe kudea ditzakete XNUMX. motako orrialdeen akatsak. Hala ere, diskorako sarbidea behar duten XNUMX motako orrien akatsak maneiatzea atzerapen handiak eragin ditzake.

      Zabbix: perf_counter[MemoryPage Faults/seg] Trigger Adibidea:
      {NODE_NAME:perf_counter[MemoryPage Faults/seg].min(5m)}>1000, maila-informazioa

    3. Byte eskuragarriak

      Hainbat prozesu exekutatzeko erabilgarri dagoen bytetan dagoen memoria kopuruaren jarraipena egiten du. Zenbaki baxuek memoria baxua esan nahi dute. Konponbidea memoria handitzea da. Neurgailu honek kasu gehienetan 5000 kV-tik gora egon behar du etengabe.
      Zentzuzkoa da Mbyte erabilgarrien atalasea eskuz ezartzea arrazoi hauengatik:

      β€’%50 libreko memoria eskuragarri = Bikaina
      β€’% 25 memoria eskuragarri = Arreta behar du
      β€’%10 doan = Arazo posibleak
      β€’ Memoria erabilgarriaren %5 baino gutxiago = Abiadurarako kritikoa, esku hartu behar duzu.
      Zabbix: perf_counter[MemoryAvailable Bytes]

  3. Prozesadorea (guztira): % prozesadorearen denbora
    Kontagailu honek prozesadorea lanpetuta egon den denbora-portzentajea erakusten du inaktiboak ez diren harietarako (haria ez-Idle) eragiketak exekutatzen. Balio hori lan erabilgarria egiteko behar den denboraren zati gisa har daiteke. Prozesadore bakoitza beste hariek erabiltzen ez dituzten prozesadore-ziklo produktiboak kontsumitzen dituen hari inaktibo bati esleitu dakioke. Kontagailu honek ehuneko 100era irits daitezkeen gailur laburrak ditu. Hala ere, prozesadorearen erabilera ehuneko 80tik gorakoa den epe luzeak badira, sistema eraginkorragoa izango da prozesadore gehiago erabiltzean.

    Zabbix: perf_counter[Processor(_Total)% Processor Time], hemen nukleoen arabera ere bistaratu daiteke
    Trigger Adibidea:
    {NODE_NAME:perf_counter[Processor(_Total)% Processor Time].min(5m)}>80, maila-informazioa

  4. Sare-interfazea (*): % Byte Guztira/s
    Interfaze guztietan segundoko bidalitako eta jasotako byte kopuru osoa. Hau da interfazearen banda-zabalera (bytetan). Beharrezkoa da kontagailu honen balioa sare-txartelaren banda zabalera maximoarekin alderatzea. Oro har, kontagailu honek sare-egokitzaileen banda-zabaleraren %50eko erabilera baino gehiago ez du erakutsi behar.
    Zabbix: perf_counter[Sare Interfazea (*) Bidalitako byte/seg]
  5. MS SQL Server: Sarbide metodoak
    SQL Server-eko Access Methods objektuak kontagailuak eskaintzen ditu datu-base bateko datu logikoetarako sarbidearen jarraipena egiten laguntzeko. Diskoko datu-baseen orrietarako sarbide fisikoa buffer-kudeatzailearen kontagailuek kontrolatzen dute. Datu-base batean datuak sartzeko metodoak behatzeak kontsultaren errendimendua hobetu dezakezun zehazten du indizeak gehituz edo aldatuz, partizioak gehituz edo mugituz, fitxategiak edo fitxategi-taldeak gehituz, indizeak desfragmentatuz edo kontsulta-testua aldatuz. Access Methods objektuko kontagailuak ere erabil ditzakezu datu-baseko datuen, indizeen eta espazio librearen tamaina kontrolatzeko, zerbitzariaren instantzia bakoitzaren bolumena eta zatiketa kontrolatuz. Indizeen gehiegizko zatiketak errendimendua nabarmen honda dezake.

    1. Orri zatiak/seg
      Indize-orriak gainezkatzearen ondorioz gertatu den segundoko orrialde-jauzi kopurua. Adierazle honen balio handi batek esan nahi du SQL Server-ek baliabideak behar dituzten eragiketa ugari egiten dituela orriak zatitzeko eta lehendik dagoen orri baten zati bat kokapen berri batera eramateko txertatzeko eta eguneratzeko eragiketak egiterakoan. Ahal den guztietan saihestu behar dira horrelako eragiketak. Arazoa bi modutara konpontzen saia zaitezke:
      - Sortu indize multzokatu bat gehikuntza automatikoko zutabeetan. Kasu honetan, sarrera berriak ez dira jada datuek okupatutako orrien barruan jarriko, baizik eta orrialde berriak sekuentzialki okupatuko dituzte;
      β€” Berreraiki indizeak Fillfactor parametroaren balioa handituz. Aukera honek aukera ematen du indize-orrietako espazio librea datu berrietarako erreserbatzeko orria egin beharrik gabe.
      Zabbix: perf_counter["MSSQL$InstanceName:Sarbide metodoak orrialde zatiak/seg",30] Trigger Adibidea: {NODE_NAME:perf_counter["MSSQL$INStance_NAME:Access MethodsPage Splits/seg",30].last()}>{NODE_NAME:perf_counter["MSSQL$INStance_NAME:SQL StatisticsBatch Requests/seg",30].last()} /5, maila-informazioa
    2. Eskaneaketa osoa/seg
      Segundoko eskaneaketa oso mugagabeen kopurua. Eragiketa hauek oinarrizko taularen azterketak eta indize osoak aztertzen dituzte. Adierazle honen igoera egonkor batek sistemaren degradazioa adieraz dezake (beharrezko indizeen falta, haien zatiketa handia, optimizatzaileak lehendik dauden indizeak ez erabiltzea, erabili gabeko indizeen presentzia). Hala ere, nabarmentzekoa da taula txikietan eskaneatu osoa ez dela beti txarra, zeren eta mahai osoa RAM-an sartzen baduzu, azkarragoa izango da eskaneatu osoa egitea. Baina kasu gehienetan, kontagailu honen hazkunde egonkorrak sistemaren degradazioa adieraziko du. Hau guztia OLTP sistemetan soilik aplikatzen da. OLAP sistemetan, etengabeko miaketa osoak normalak dira.
      Zabbix: perf_counter["MSSQL$InstanceName:Sarbide metodoakEskaneatze osoa/seg",30]

  6. MS SQL Server: Buffer kudeatzailea
    Buffer Manager objektuak kontagailuak eskaintzen ditu SQL Server baliabide hauek nola erabiltzen dituen kontrolatzeko:
    - datu-orriak gordetzeko memoria;
    - SQL Server-ek datu-basearen orriak irakurtzen eta idazten dituenean I/O fisikoa kontrolatzeko erabiltzen diren kontagailuak;
    - Buffer-igerilekuaren hedapena, memoria ez lurrunkorra erabiliz, memoria ez-hegazkorra erabiliz, adibidez, egoera solidoko unitateak (SSD);
    - SQL Server-ek erabiltzen dituen memoria eta kontagailuen jarraipena egiteak honako informazioa lortzen laguntzen du;
    - Ba al dago memoria fisikoaren gabeziak eragindako "botila-leporik". Sarritan sartzen diren datuak ezin badira gorde, SQL Server diskotik irakurtzera behartuta dago;
    - Kontsulten exekuzioaren eraginkortasuna areagotzea posible den memoria kopurua handituz edo memoria gehigarria esleituz datuak cachean gordetzeko edo SQL Server-en barne egiturak gordetzeko;
    SQL zerbitzariak zenbat aldiz irakurtzen dituen diskoko datuak. Beste eragiketa batzuekin alderatuta, memoriarako sarbidea adibidez, I/O fisikoak denbora gehiago behar du. I/O murrizteak kontsultaren errendimendua hobetu dezake.

    1. Buffer Cache irratia jo zuen
      SQL Server-ek cache-buferrean datuak zenbat esleitu ditzakeen adierazten du. Zenbat eta balio hau handiagoa, orduan eta hobeto. SQL Server datu-orrietara modu eraginkorrean atzitzeko, cache-buffer batean egon behar dute eta ez da sarrera/irteera fisikorik izan behar (I/O) eragiketarik. Kontagailu honen batez besteko balioa etengabe murrizten bada, RAM gehitzea kontuan hartu beharko zenuke. Adierazle honek %90etik gora egon behar du beti OLTP sistemetarako eta %50etik gora OLAP sistemetarako.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Buffer ManagerBuffer cache-ren arrakasta-ratioa",30] Trigger Adibideak: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Buffer ManagerBuffer cache-ren arrakasta-ratioa",30].last()}<70, maila altua
      ΠΈ
      {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Buffer ManagerBuffer cache-ren arrakasta-ratioa",30].last()}<80, maila-ertaina
    2. Orrialdearen bizi-itxaropena
      Uneko egoeran orria betirako memorian zenbat denbora iraungo duen adierazten du. Balioa jaisten jarraitzen badu, sistemak buffer multzoa gehiegi erabiltzen ari dela esan nahi du. Beraz, memoriaren funtzionamenduak arazoak sor ditzake errendimendua hondatzeraino. Azpimarratzekoa da ez dagoela adierazle unibertsala azpitik sistemak buffer-igerilekua abusatzen duela (300 segundoko adierazlea zaharkituta dago MS SQL Server 2012-rekin).
      Zabbix: perf_counter["MSSQL$INSTENTION_NAME:Buffer ManagerPage bizi-itxaropena",30] Trigger Adibidea: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Buffer ManagerPage bizi-itxaropena",30].last()}<5, level-info

  7. MS SQL Server: Estatistika Orokorrak
    SQL Server-eko Estatistika Orokorreko objektuak zerbitzariaren jarduera orokorra kontrolatzeko aukera ematen duten kontagailuak eskaintzen ditu, hala nola, aldibereko konexioen kopurua eta SQL Server-en instantzia bat exekutatzen duen ordenagailura konektatzen edo deskonektatzen den ordenagailura konektatzen edo deskonektatzen den segundoko erabiltzaile kopurua. Neurri hauek erabilgarriak dira lineako transakzioen prozesatzeko (OLTP) sistemetan, non bezero ugari etengabe konektatzen eta deskonektatzen ari diren SQL Server instantziatik.

    1. Prozesua blokeatuta dago
      Une honetan blokeatutako prozesuen kopurua.
      Zabbix: perf_counter["MSSQL$INSPECTION_NAME:Estatistika Orokorreko Prozesuak blokeatuta",30] Trigger Adibidea: ({NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:General StatisticsProcess blocked",30].min(2m,0)}>=0)
      eta ({NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:General StatisticsProcess blocked",30].time(0)}>=50000)
      eta ({NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:General StatisticsProcesses blocked",30].time(0)}<=230000), maila-informazioa (05:00etatik 23:00etara alarma-murrizketa dago)
    2. Erabiltzaileen konexioak
      Une honetan SQL Server-era konektatutako erabiltzaile kopurua.
      Zabbix: perf_counter["MSSQL$INSPECTION_NAME:Estatistika Orokorrak erabiltzaileen konexioak",30]

  8. MS SQL Server: blokeoak
    Microsoft SQL Server-eko Blokeoak objektuak baliabide mota indibidualetan eskuratutako SQL Server blokeoei buruzko informazioa eskaintzen du. Blokeoak igortzen dira SQL Server baliabideetan, hala nola transakzio batek irakurritako edo aldatzen dituen errenkadak, transakzio anitzek baliabideak aldi berean erabiltzea saihesteko. Adibidez, taula bateko errenkada bateko transakzio batek (X) blokeo esklusibo bat eskuratzen badu, beste transakzio batek ezin du errenkada hori aldatu blokeoa askatu arte. Blokeoen erabilera gutxitzeak aldiberekotasuna areagotzen du, eta horrek errendimendu orokorra hobe dezake. Blokeoak objektuaren hainbat instantzia jarrai daitezke aldi berean, eta horietako bakoitzak blokeo bat irudikatuko du baliabide mota ezberdin batean.

    1. Batez besteko itxaron-denbora (ms)
      Itxaron behar izan duten blokeo-eskaera guztien batez besteko itxaron-denbora (milisegundotan). Kontadore honek baliabide baten blokeoa eskuratzeko ilaran jarri behar duten erabiltzaile-prozesuen batez besteko kopurua neurtzen du. Kontadore honen gehienezko balioa zure zereginaren araberakoa da guztiz, zaila da hemen aplikazio guztien batez besteko balioa zehaztea. Kontadore hau altuegia bada, zure datu-baseko blokeoekin arazoak izan ditzake.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Blokeoak(_Total)Itxaron-denbora batez bestekoa (ms)",30] Trigger Adibidea: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Blokeoak(_Total)Batez besteko itxaron denbora (ms)",30].last()}>=500, maila-informazioa
    2. Blokeatu itxaron denbora (ms)
      Blokeoaren itxaron denbora osoa (milisegundotan) azken segundoan.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Blokeoak(_Total)Blokeatu itxaron denbora (ms)",30]
    3. Blokeatu Itxaron/seg
      Hari batek blokeo-eskaera baten zain egon behar duen azken segundoan.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Blokeoak(_Total)Blokeatu itxaron/seg",30]
    4. Blokeatu denbora-muga/seg
      Blokeoa round-robin bidez eskuratu ezin denean berriro saiakera kopurua. SQL Server bira-kontagailuaren konfigurazio-parametroaren balioak hariaren "bira" kopurua zehazten du (biraketak) denbora iraungi eta haria inaktibo egon baino lehen.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Blokeoak(_Total)Blokeatzeko denbora-muga/seg",30] Trigger Adibidea: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Blokeoak(_Total)Blokeoak(_Total)Blokeatzeko denbora-muga/seg",30].last()}>1000, maila-informazioa
    5. Blokeo eskaerak/seg
      Zehaztutako blokeo motarako segundoko eskaera kopurua.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Blokeoak(_Total)Blokeatzeko eskaerak/seg",30] Trigger Adibidea: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Blokeoak(_Total)Blokeo eskaerak/seg",30].last()}>500000, informazio-maila
    6. Blokeatu blokeo kopurua/seg
      Blokeo-eskaeren kopurua blokeoa eragiten duten segundoko. Deadlockek partekatutako baliabideak blokeatzen dituzten kontsulta okerrak adierazten dituzte.
      Zabbix: perf_counter["MSSQL$INSTENTION_NAME:Deadlock kopurua/seg",30] Trigger Adibidea: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Blokeoak(_Total)Blokeo kopurua/seg",30].last()}>1, maila altua

  9. MS SQL Server: Memoria kudeatzailea
    Microsoft SQL Server-eko Memory Manager objektuak zerbitzari osoan memoriaren erabilera kontrolatzeko kontagailuak eskaintzen ditu. Erabiltzaileen jarduera eta baliabideen erabilera ebaluatzeko zerbitzari osoko memoria-erabilera kontrolatzeak errendimendu-botoiak identifikatzen lagun dezake. SQL Server-en instantzia batek erabiltzen duen memoria-kontrolak zehazten lagun dezake:
    - Ea memoria fisiko nahikorik gabe dagoen ala ez maiz sartzen diren datuak cachean gordetzeko. Memoria nahikoa ez badago, SQL Server-ek diskotik datuak berreskuratu behar ditu;
    - Kontsulten errendimendua hobetu daitekeen memoria gehiago gehitzen bada edo memoria gehiago eskuragarri badago datuak cachean edo SQL Server barne-egiturak gordetzeko.

    1. Memoria Bekak nabarmenak
      Lan-eremuko memoria behar bezala eskuratu duten prozesu-kopurua zehazten du. Adierazlearen jaitsiera egonkor batekin, RAM handitu egin behar da.
      Zabbix: perf_counter["MSSQL$INSTENTION_NAME:Memoria-kudeatzailea Memoria-laguntzak nabarmenak",30]
    2. Memoria Bekak Zain
      Lan-memoria emateko zain dauden prozesu kopurua adierazten du. Adierazlearen hazkunde egonkor batekin, beharrezkoa da RAM handitzea.
      Zabbix: perf_counter["MSSQL$InstanceName:Memoria-kudeatzailea Memoria-eskakizunak zain",30]

  10. MS SQL Server: Estatistikak
    Microsoft SQL Server-eko Estatistikak objektuak kontagailuak eskaintzen ditu SQL Server-en instantzia batera bidalitako konpilazio eta kontsulta motak kontrolatzeko. Kontsulten konpilazio eta birkonpilazio kopurua eta SQL Server instantzia batek jasotako lote kopurua kontrolatzeak SQL Server-ek erabiltzaileen kontsultak zein azkar exekutatzen dituen eta kontsulta-optimizatzaileak zein eraginkortasunez prozesatzen dituen ideia ematen dizu.

    1. Batch eskaerak/seg
      Segundoko jasotako Transact-SQL komando-paketeen kopurua. Estatistika hauek edozein mugak eragiten dute (I/O, erabiltzaile kopurua, cachearen tamaina, kontsultaren konplexutasuna, etab.). Pakete-eskaeren kopuru handiak errendimendu handia adierazten du.
      Zabbix: perf_counter["MSSQL$InstanceName:SQL StatisticsBatch Requests/seg",30]

Aurreko guztiaz gain, beste datu-elementu batzuk ere konfigura ditzakezu (baita horien gainean abiarazleak sor ditzakezu ondorengo jakinarazpenarekin). Adibidez:
1) Disko espazio librea
2) DB datu-fitxategien eta erregistro-erregistroen tamainak
eta abar.
Hala ere, adierazle hauek guztiek ez dute denbora errealeko kontsulten arazoa erakusten.
Horretarako, zure kontagailu bereziak sortu behar dituzu.
Konfidentzialtasun arrazoiak direla eta, ez dut kontagailu horien adibiderik jarriko. Gainera, sistema bakoitzerako modu berezian konfiguratuta daude. Baina ohartzen naiz 1C, NAV eta CRM bezalako sistemetan kontagailu espezializatuak sor daitezkeela dagozkien garatzaileekin batera.
Adierazle orokor bat sortzeko adibide bat emango dut, une bakoitzean zenbat eskaera exekutatzen ari diren eta zenbat eskaera exekutatzeko zain dauden (pausatua edo blokeatuta) erakusten duena.
Horretarako, gordetako prozedura bat sortu behar duzu:
Code

USE [ИМЯ_БАЗЫ_ДАННЫΠ₯]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [nav].[ZabbixGetCountRequestStatus]
	@Status nvarchar(255)
AS
BEGIN
	/*
		Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»-Π²ΠΎ запросов с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ статусом
	*/
	SET NOCOUNT ON;

	select count(*) as [Count]
	from sys.dm_exec_requests ER with(readuncommitted)
	where [status]=@Status
END

Ondoren, Zabbix dagoen karpetara joan behar duzu (zabbixconfuserparams.d) eta ps2 (PowerShell) luzapenarekin 1 fitxategi sortu eta horietako bakoitzean honako kodeak idatzi behar dituzu:
Eskaerak martxan jartzeko kodea

$SQLServer = "ΠΠΠ—Π’ΠΠΠ˜Π•_Π­ΠšΠ—Π•ΠœΠŸΠ›Π―Π Π";
$uid = "Π›ΠžΠ“Π˜Π"; 
$pwd = "ΠŸΠΠ ΠžΠ›Π¬";
$Status="running";

$connectionString = "Server = $SQLServer; Database=ΠΠΠ—Π’ΠΠΠ˜Π•_Π‘Π”; Integrated Security = False; User ID = $uid; Password = $pwd;";

$connection = New-Object System.Data.SqlClient.SqlConnection;
$connection.ConnectionString = $connectionString;

#Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ запрос нСпосрСдствСнно ΠΊ MSSQL / Create a request directly to MSSQL
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandType = [System.Data.CommandType]::StoredProcedure;  
$SqlCmd.CommandText = "nav.ZabbixGetCountRequestStatus";
$SqlCmd.Connection = $Connection;

$paramStatus=$SqlCmd.Parameters.Add("@Status" , [System.Data.SqlDbType]::VarChar);
$paramStatus.Value = $Status;

$connection.Open();
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter;
$SqlAdapter.SelectCommand = $SqlCmd;
$DataSet = New-Object System.Data.DataSet;
$SqlAdapter.Fill($DataSet) > $null;
$connection.Close();

$result = $DataSet.Tables[0].Rows[0]["Count"];

write-host $result;

Zain dauden eskaeren kodea

$SQLServer = "ΠΠΠ—Π’ΠΠΠ˜Π•_Π­ΠšΠ—Π•ΠœΠŸΠ›Π―Π Π";
$uid = "Π›ΠžΠ“Π˜Π"; 
$pwd = "ΠŸΠΠ ΠžΠ›Π¬";
$Status="suspended";

$connectionString = "Server = $SQLServer; Database=ΠΠΠ—Π’ΠΠΠ˜Π•_Π‘Π”; Integrated Security = False; User ID = $uid; Password = $pwd;";

$connection = New-Object System.Data.SqlClient.SqlConnection;
$connection.ConnectionString = $connectionString;

#Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ запрос нСпосрСдствСнно ΠΊ MSSQL / Create a request directly to MSSQL
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandType = [System.Data.CommandType]::StoredProcedure;  
$SqlCmd.CommandText = "nav.ZabbixGetCountRequestStatus";
$SqlCmd.Connection = $Connection;

$paramStatus=$SqlCmd.Parameters.Add("@Status" , [System.Data.SqlDbType]::VarChar);
$paramStatus.Value = $Status;

$connection.Open();
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter;
$SqlAdapter.SelectCommand = $SqlCmd;
$DataSet = New-Object System.Data.DataSet;
$SqlAdapter.Fill($DataSet) > $null;
$connection.Close();

$result = $DataSet.Tables[0].Rows[0]["Count"];

write-host $result;

Orain .conf luzapena duen erabiltzaile-parametroak dituen fitxategi bat sortu behar duzu (edo lehendik sortutako erabiltzaile-fitxategi batean lerroak gehitu behar dituzu lehenago sortu bada) eta lerro hauek sartu:
UserParameter=PARAMETER_NAME_NUMBER_of_EXECUTED_QUERY, powershell -NoProfile -ExecutionPolicy Bypass -Fitxategia FULL_PATHzabbixconfuserparams.dFILE_NAME_FOR_EXECUTED_QUERY.ps1
UserParameter=PARAMETER_NAME_NUMBER_of_PENDING_REQUESTS, powershell -NoProfile -ExecutionPolicy Bypass -Fitxategia FULL_PATHzabbixconfuserparams.dFILE_NAME_FOR_PENDING_REQUESTS.ps1
Horren ostean, .conf fitxategia gordetzen dugu eta Zabbix agentea berrabiaraziko dugu.
Horren ostean, bi elementu berri gehitzen dizkiogu Zabbix-i (kasu honetan, izenak eta gakoa berdinak dira):
NAME_PARAMETER_NUMBER_PERFORMED_QUERY
NAME_PARAMETER_NUMBER_PENDING_REQUESTS
Orain grafikoak eta abiarazleak sor ditzakezu sortutako elementu pertsonalizatuetan.

Zain dauden eskaera-kopurua asko igotzen bada, hurrengo kontsultak une jakin batean martxan dauden eta zain dauden eskaera guztiak bistaratu ditzake eskaera non eta zein saio-saiopean egiten den xehetasunekin, testua eta kontsulta-plana, baita beste xehetasun batzuk ere:
Code

/*АктивныС, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ запросы, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ явно Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСансы*/
with tbl0 as (
select ES.[session_id]
,ER.[blocking_session_id]
,ER.[request_id]
,ER.[start_time]
,ER.[status]
,ES.[status] as [status_session]
,ER.[command]
,ER.[percent_complete]
,DB_Name(coalesce(ER.[database_id], ES.[database_id])) as [DBName]
,(select top(1) [text] from sys.dm_exec_sql_text(ER.[sql_handle])) as [TSQL]
,(select top(1) [objectid] from sys.dm_exec_sql_text(ER.[sql_handle])) as [objectid]
,(select top(1) [query_plan] from sys.dm_exec_query_plan(ER.[plan_handle])) as [QueryPlan]
,ER.[wait_type]
,ES.[login_time]
,ES.[host_name]
,ES.[program_name]
,ER.[wait_time]
,ER.[last_wait_type]
,ER.[wait_resource]
,ER.[open_transaction_count]
,ER.[open_resultset_count]
,ER.[transaction_id]
,ER.[context_info]
,ER.[estimated_completion_time]
,ER.[cpu_time]
,ER.[total_elapsed_time]
,ER.[scheduler_id]
,ER.[task_address]
,ER.[reads]
,ER.[writes]
,ER.[logical_reads]
,ER.[text_size]
,ER.[language]
,ER.[date_format]
,ER.[date_first]
,ER.[quoted_identifier]
,ER.[arithabort]
,ER.[ansi_null_dflt_on]
,ER.[ansi_defaults]
,ER.[ansi_warnings]
,ER.[ansi_padding]
,ER.[ansi_nulls]
,ER.[concat_null_yields_null]
,ER.[transaction_isolation_level]
,ER.[lock_timeout]
,ER.[deadlock_priority]
,ER.[row_count]
,ER.[prev_error]
,ER.[nest_level]
,ER.[granted_query_memory]
,ER.[executing_managed_code]
,ER.[group_id]
,ER.[query_hash]
,ER.[query_plan_hash]
,EC.[most_recent_session_id]
,EC.[connect_time]
,EC.[net_transport]
,EC.[protocol_type]
,EC.[protocol_version]
,EC.[endpoint_id]
,EC.[encrypt_option]
,EC.[auth_scheme]
,EC.[node_affinity]
,EC.[num_reads]
,EC.[num_writes]
,EC.[last_read]
,EC.[last_write]
,EC.[net_packet_size]
,EC.[client_net_address]
,EC.[client_tcp_port]
,EC.[local_net_address]
,EC.[local_tcp_port]
,EC.[parent_connection_id]
,EC.[most_recent_sql_handle]
,ES.[host_process_id]
,ES.[client_version]
,ES.[client_interface_name]
,ES.[security_id]
,ES.[login_name]
,ES.[nt_domain]
,ES.[nt_user_name]
,ES.[memory_usage]
,ES.[total_scheduled_time]
,ES.[last_request_start_time]
,ES.[last_request_end_time]
,ES.[is_user_process]
,ES.[original_security_id]
,ES.[original_login_name]
,ES.[last_successful_logon]
,ES.[last_unsuccessful_logon]
,ES.[unsuccessful_logons]
,ES.[authenticating_database_id]
,ER.[sql_handle]
,ER.[statement_start_offset]
,ER.[statement_end_offset]
,ER.[plan_handle]
,ER.[dop]
,coalesce(ER.[database_id], ES.[database_id]) as [database_id]
,ER.[user_id]
,ER.[connection_id]
from sys.dm_exec_requests ER with(readuncommitted)
right join sys.dm_exec_sessions ES with(readuncommitted)
on ES.session_id = ER.session_id 
left join sys.dm_exec_connections EC  with(readuncommitted)
on EC.session_id = ES.session_id
)
, tbl as (
select [session_id]
,[blocking_session_id]
,[request_id]
,[start_time]
,[status]
,[status_session]
,[command]
,[percent_complete]
,[DBName]
,OBJECT_name([objectid], [database_id]) as [object]
,[TSQL]
,[QueryPlan]
,[wait_type]
,[login_time]
,[host_name]
,[program_name]
,[wait_time]
,[last_wait_type]
,[wait_resource]
,[open_transaction_count]
,[open_resultset_count]
,[transaction_id]
,[context_info]
,[estimated_completion_time]
,[cpu_time]
,[total_elapsed_time]
,[scheduler_id]
,[task_address]
,[reads]
,[writes]
,[logical_reads]
,[text_size]
,[language]
,[date_format]
,[date_first]
,[quoted_identifier]
,[arithabort]
,[ansi_null_dflt_on]
,[ansi_defaults]
,[ansi_warnings]
,[ansi_padding]
,[ansi_nulls]
,[concat_null_yields_null]
,[transaction_isolation_level]
,[lock_timeout]
,[deadlock_priority]
,[row_count]
,[prev_error]
,[nest_level]
,[granted_query_memory]
,[executing_managed_code]
,[group_id]
,[query_hash]
,[query_plan_hash]
,[most_recent_session_id]
,[connect_time]
,[net_transport]
,[protocol_type]
,[protocol_version]
,[endpoint_id]
,[encrypt_option]
,[auth_scheme]
,[node_affinity]
,[num_reads]
,[num_writes]
,[last_read]
,[last_write]
,[net_packet_size]
,[client_net_address]
,[client_tcp_port]
,[local_net_address]
,[local_tcp_port]
,[parent_connection_id]
,[most_recent_sql_handle]
,[host_process_id]
,[client_version]
,[client_interface_name]
,[security_id]
,[login_name]
,[nt_domain]
,[nt_user_name]
,[memory_usage]
,[total_scheduled_time]
,[last_request_start_time]
,[last_request_end_time]
,[is_user_process]
,[original_security_id]
,[original_login_name]
,[last_successful_logon]
,[last_unsuccessful_logon]
,[unsuccessful_logons]
,[authenticating_database_id]
,[sql_handle]
,[statement_start_offset]
,[statement_end_offset]
,[plan_handle]
,[dop]
,[database_id]
,[user_id]
,[connection_id]
from tbl0
where [status] in ('suspended', 'running', 'runnable')
)
, tbl_group as (
select [blocking_session_id]
from tbl
where [blocking_session_id]<>0
group by [blocking_session_id]
)
, tbl_res_rec as (
select [session_id]
,[blocking_session_id]
,[request_id]
,[start_time]
,[status]
,[status_session]
,[command]
,[percent_complete]
,[DBName]
,[object]
,[TSQL]
,[QueryPlan]
,[wait_type]
,[login_time]
,[host_name]
,[program_name]
,[wait_time]
,[last_wait_type]
,[wait_resource]
,[open_transaction_count]
,[open_resultset_count]
,[transaction_id]
,[context_info]
,[estimated_completion_time]
,[cpu_time]
,[total_elapsed_time]
,[scheduler_id]
,[task_address]
,[reads]
,[writes]
,[logical_reads]
,[text_size]
,[language]
,[date_format]
,[date_first]
,[quoted_identifier]
,[arithabort]
,[ansi_null_dflt_on]
,[ansi_defaults]
,[ansi_warnings]
,[ansi_padding]
,[ansi_nulls]
,[concat_null_yields_null]
,[transaction_isolation_level]
,[lock_timeout]
,[deadlock_priority]
,[row_count]
,[prev_error]
,[nest_level]
,[granted_query_memory]
,[executing_managed_code]
,[group_id]
,[query_hash]
,[query_plan_hash]
,[most_recent_session_id]
,[connect_time]
,[net_transport]
,[protocol_type]
,[protocol_version]
,[endpoint_id]
,[encrypt_option]
,[auth_scheme]
,[node_affinity]
,[num_reads]
,[num_writes]
,[last_read]
,[last_write]
,[net_packet_size]
,[client_net_address]
,[client_tcp_port]
,[local_net_address]
,[local_tcp_port]
,[parent_connection_id]
,[most_recent_sql_handle]
,[host_process_id]
,[client_version]
,[client_interface_name]
,[security_id]
,[login_name]
,[nt_domain]
,[nt_user_name]
,[memory_usage]
,[total_scheduled_time]
,[last_request_start_time]
,[last_request_end_time]
,[is_user_process]
,[original_security_id]
,[original_login_name]
,[last_successful_logon]
,[last_unsuccessful_logon]
,[unsuccessful_logons]
,[authenticating_database_id]
,[sql_handle]
,[statement_start_offset]
,[statement_end_offset]
,[plan_handle]
,[dop]
,[database_id]
,[user_id]
,[connection_id]
, 0 as [is_blocking_other_session]
from tbl
union all
select tbl0.[session_id]
,tbl0.[blocking_session_id]
,tbl0.[request_id]
,tbl0.[start_time]
,tbl0.[status]
,tbl0.[status_session]
,tbl0.[command]
,tbl0.[percent_complete]
,tbl0.[DBName]
,OBJECT_name(tbl0.[objectid], tbl0.[database_id]) as [object]
,tbl0.[TSQL]
,tbl0.[QueryPlan]
,tbl0.[wait_type]
,tbl0.[login_time]
,tbl0.[host_name]
,tbl0.[program_name]
,tbl0.[wait_time]
,tbl0.[last_wait_type]
,tbl0.[wait_resource]
,tbl0.[open_transaction_count]
,tbl0.[open_resultset_count]
,tbl0.[transaction_id]
,tbl0.[context_info]
,tbl0.[estimated_completion_time]
,tbl0.[cpu_time]
,tbl0.[total_elapsed_time]
,tbl0.[scheduler_id]
,tbl0.[task_address]
,tbl0.[reads]
,tbl0.[writes]
,tbl0.[logical_reads]
,tbl0.[text_size]
,tbl0.[language]
,tbl0.[date_format]
,tbl0.[date_first]
,tbl0.[quoted_identifier]
,tbl0.[arithabort]
,tbl0.[ansi_null_dflt_on]
,tbl0.[ansi_defaults]
,tbl0.[ansi_warnings]
,tbl0.[ansi_padding]
,tbl0.[ansi_nulls]
,tbl0.[concat_null_yields_null]
,tbl0.[transaction_isolation_level]
,tbl0.[lock_timeout]
,tbl0.[deadlock_priority]
,tbl0.[row_count]
,tbl0.[prev_error]
,tbl0.[nest_level]
,tbl0.[granted_query_memory]
,tbl0.[executing_managed_code]
,tbl0.[group_id]
,tbl0.[query_hash]
,tbl0.[query_plan_hash]
,tbl0.[most_recent_session_id]
,tbl0.[connect_time]
,tbl0.[net_transport]
,tbl0.[protocol_type]
,tbl0.[protocol_version]
,tbl0.[endpoint_id]
,tbl0.[encrypt_option]
,tbl0.[auth_scheme]
,tbl0.[node_affinity]
,tbl0.[num_reads]
,tbl0.[num_writes]
,tbl0.[last_read]
,tbl0.[last_write]
,tbl0.[net_packet_size]
,tbl0.[client_net_address]
,tbl0.[client_tcp_port]
,tbl0.[local_net_address]
,tbl0.[local_tcp_port]
,tbl0.[parent_connection_id]
,tbl0.[most_recent_sql_handle]
,tbl0.[host_process_id]
,tbl0.[client_version]
,tbl0.[client_interface_name]
,tbl0.[security_id]
,tbl0.[login_name]
,tbl0.[nt_domain]
,tbl0.[nt_user_name]
,tbl0.[memory_usage]
,tbl0.[total_scheduled_time]
,tbl0.[last_request_start_time]
,tbl0.[last_request_end_time]
,tbl0.[is_user_process]
,tbl0.[original_security_id]
,tbl0.[original_login_name]
,tbl0.[last_successful_logon]
,tbl0.[last_unsuccessful_logon]
,tbl0.[unsuccessful_logons]
,tbl0.[authenticating_database_id]
,tbl0.[sql_handle]
,tbl0.[statement_start_offset]
,tbl0.[statement_end_offset]
,tbl0.[plan_handle]
,tbl0.[dop]
,tbl0.[database_id]
,tbl0.[user_id]
,tbl0.[connection_id]
, 1 as [is_blocking_other_session]
from tbl_group as tg
inner join tbl0 on tg.blocking_session_id=tbl0.session_id
)
,tbl_res_rec_g as (
select [plan_handle],
[sql_handle],
cast([start_time] as date) as [start_time]
from tbl_res_rec
group by [plan_handle],
[sql_handle],
cast([start_time] as date)
)
,tbl_rec_stat_g as (
select qs.[plan_handle]
,qs.[sql_handle]
--,cast(qs.[last_execution_time] as date)	as [last_execution_time]
,min(qs.[creation_time])					as [creation_time]
,max(qs.[execution_count])				as [execution_count]
,max(qs.[total_worker_time])				as [total_worker_time]
,min(qs.[last_worker_time])				as [min_last_worker_time]
,max(qs.[last_worker_time])				as [max_last_worker_time]
,min(qs.[min_worker_time])				as [min_worker_time]
,max(qs.[max_worker_time])				as [max_worker_time]
,max(qs.[total_physical_reads])			as [total_physical_reads]
,min(qs.[last_physical_reads])			as [min_last_physical_reads]
,max(qs.[last_physical_reads])			as [max_last_physical_reads]
,min(qs.[min_physical_reads])				as [min_physical_reads]
,max(qs.[max_physical_reads])				as [max_physical_reads]
,max(qs.[total_logical_writes])			as [total_logical_writes]
,min(qs.[last_logical_writes])			as [min_last_logical_writes]
,max(qs.[last_logical_writes])			as [max_last_logical_writes]
,min(qs.[min_logical_writes])				as [min_logical_writes]
,max(qs.[max_logical_writes])				as [max_logical_writes]
,max(qs.[total_logical_reads])			as [total_logical_reads]
,min(qs.[last_logical_reads])				as [min_last_logical_reads]
,max(qs.[last_logical_reads])				as [max_last_logical_reads]
,min(qs.[min_logical_reads])				as [min_logical_reads]
,max(qs.[max_logical_reads])				as [max_logical_reads]
,max(qs.[total_clr_time])					as [total_clr_time]
,min(qs.[last_clr_time])					as [min_last_clr_time]
,max(qs.[last_clr_time])					as [max_last_clr_time]
,min(qs.[min_clr_time])					as [min_clr_time]
,max(qs.[max_clr_time])					as [max_clr_time]
,max(qs.[total_elapsed_time])				as [total_elapsed_time]
,min(qs.[last_elapsed_time])				as [min_last_elapsed_time]
,max(qs.[last_elapsed_time])				as [max_last_elapsed_time]
,min(qs.[min_elapsed_time])				as [min_elapsed_time]
,max(qs.[max_elapsed_time])				as [max_elapsed_time]
,max(qs.[total_rows])						as [total_rows]
,min(qs.[last_rows])						as [min_last_rows]
,max(qs.[last_rows])						as [max_last_rows]
,min(qs.[min_rows])						as [min_rows]
,max(qs.[max_rows])						as [max_rows]
,max(qs.[total_dop])						as [total_dop]
,min(qs.[last_dop])						as [min_last_dop]
,max(qs.[last_dop])						as [max_last_dop]
,min(qs.[min_dop])						as [min_dop]
,max(qs.[max_dop])						as [max_dop]
,max(qs.[total_grant_kb])					as [total_grant_kb]
,min(qs.[last_grant_kb])					as [min_last_grant_kb]
,max(qs.[last_grant_kb])					as [max_last_grant_kb]
,min(qs.[min_grant_kb])					as [min_grant_kb]
,max(qs.[max_grant_kb])					as [max_grant_kb]
,max(qs.[total_used_grant_kb])			as [total_used_grant_kb]
,min(qs.[last_used_grant_kb])				as [min_last_used_grant_kb]
,max(qs.[last_used_grant_kb])				as [max_last_used_grant_kb]
,min(qs.[min_used_grant_kb])				as [min_used_grant_kb]
,max(qs.[max_used_grant_kb])				as [max_used_grant_kb]
,max(qs.[total_ideal_grant_kb])			as [total_ideal_grant_kb]
,min(qs.[last_ideal_grant_kb])			as [min_last_ideal_grant_kb]
,max(qs.[last_ideal_grant_kb])			as [max_last_ideal_grant_kb]
,min(qs.[min_ideal_grant_kb])				as [min_ideal_grant_kb]
,max(qs.[max_ideal_grant_kb])				as [max_ideal_grant_kb]
,max(qs.[total_reserved_threads])			as [total_reserved_threads]
,min(qs.[last_reserved_threads])			as [min_last_reserved_threads]
,max(qs.[last_reserved_threads])			as [max_last_reserved_threads]
,min(qs.[min_reserved_threads])			as [min_reserved_threads]
,max(qs.[max_reserved_threads])			as [max_reserved_threads]
,max(qs.[total_used_threads])				as [total_used_threads]
,min(qs.[last_used_threads])				as [min_last_used_threads]
,max(qs.[last_used_threads])				as [max_last_used_threads]
,min(qs.[min_used_threads])				as [min_used_threads]
,max(qs.[max_used_threads])				as [max_used_threads]
from tbl_res_rec_g as t
inner join sys.dm_exec_query_stats as qs with(readuncommitted) on t.[plan_handle]=qs.[plan_handle] 
and t.[sql_handle]=qs.[sql_handle] 
and t.[start_time]=cast(qs.[last_execution_time] as date)
group by qs.[plan_handle]
,qs.[sql_handle]
--,qs.[last_execution_time]
)
select t.[session_id] --БСссия
,t.[blocking_session_id] --БСссия, которая явно Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ сСссию [session_id]
,t.[request_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ запроса. Π£Π½ΠΈΠΊΠ°Π»Π΅Π½ Π² контСкстС сСанса
,t.[start_time] --ΠœΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ поступлСния запроса
,DateDiff(second, t.[start_time], GetDate()) as [date_diffSec] --Бколько Π² сСк ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° поступлСния запроса
,t.[status] --БостояниС запроса
,t.[status_session] --БостояниС сСссии
,t.[command] --Π’ΠΈΠΏ выполняСмой Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
, COALESCE(
CAST(NULLIF(t.[total_elapsed_time] / 1000, 0) as BIGINT)
,CASE WHEN (t.[status_session] <> 'running' and isnull(t.[status], '')  <> 'running') 
THEN  DATEDIFF(ss,0,getdate() - nullif(t.[last_request_end_time], '1900-01-01T00:00:00.000'))
END
) as [total_time, sec] --ВрСмя всСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ запроса Π² сСк
, CAST(NULLIF((CAST(t.[total_elapsed_time] as BIGINT) - CAST(t.[wait_time] AS BIGINT)) / 1000, 0 ) as bigint) as [work_time, sec] --ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ запроса Π² сСк Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ
, CASE WHEN (t.[status_session] <> 'running' AND ISNULL(t.[status],'') <> 'running') 
THEN  DATEDIFF(ss,0,getdate() - nullif(t.[last_request_end_time], '1900-01-01T00:00:00.000'))
END as [sleep_time, sec] --ВрСмя сна Π² сСк
, NULLIF( CAST((t.[logical_reads] + t.[writes]) * 8 / 1024 as numeric(38,2)), 0) as [IO, MB] --ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи Π² ΠœΠ‘
, CASE  t.transaction_isolation_level
WHEN 0 THEN 'Unspecified'
WHEN 1 THEN 'ReadUncommited'
WHEN 2 THEN 'ReadCommited'
WHEN 3 THEN 'Repetable'
WHEN 4 THEN 'Serializable'
WHEN 5 THEN 'Snapshot'
END as [transaction_isolation_level_desc] --ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°)
,t.[percent_complete] --ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄
,t.[DBName] --Π‘Π”
,t.[object] --ΠžΠ±ΡŠΠ΅ΠΊΡ‚
, SUBSTRING(
t.[TSQL]
, t.[statement_start_offset]/2+1
,	(
CASE WHEN ((t.[statement_start_offset]<0) OR (t.[statement_end_offset]<0))
THEN DATALENGTH (t.[TSQL])
ELSE t.[statement_end_offset]
END
- t.[statement_start_offset]
)/2 +1
) as [CURRENT_REQUEST] --Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ выполняСмый запрос Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅
,t.[TSQL] --Запрос всСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°
,t.[QueryPlan] --План всСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°
,t.[wait_type] --Если запрос Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, Π² столбцС содСрТится Ρ‚ΠΈΠΏ оТидания (sys.dm_os_wait_stats)
,t.[login_time] --ВрСмя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сСанса
,t.[host_name] --Имя клиСнтской Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² сСансС. Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ сСанса это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,t.[program_name] --Имя клиСнтской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π»Π° сСанс. Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ сСанса это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,cast(t.[wait_time]/1000 as decimal(18,3)) as [wait_timeSec] --Если запрос Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, Π² столбцС содСрТится ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ оТидания (Π² сСкундах)
,t.[wait_time] --Если запрос Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, Π² столбцС содСрТится ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ оТидания (Π² миллисСкундах)
,t.[last_wait_type] --Если запрос Π±Ρ‹Π» Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Ρ€Π°Π½Π΅Π΅, Π² столбцС содСрТится Ρ‚ΠΈΠΏ послСднСго оТидания
,t.[wait_resource] --Если запрос Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, Π² столбцС ΡƒΠΊΠ°Π·Π°Π½ рСсурс, освобоТдСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ запрос
,t.[open_transaction_count] --Число Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[open_resultset_count] --Число Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ², ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[transaction_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся запрос
,t.[context_info] --Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CONTEXT_INFO сСанса
,cast(t.[estimated_completion_time]/1000 as decimal(18,3)) as [estimated_completion_timeSec] --Волько для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования. НС допускаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL
,t.[estimated_completion_time] --Волько для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования. НС допускаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL
,cast(t.[cpu_time]/1000 as decimal(18,3)) as [cpu_timeSec] --ВрСмя ЦП (Π² сСкундах), Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса
,t.[cpu_time] --ВрСмя ЦП (Π² миллисСкундах), Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса
,cast(t.[total_elapsed_time]/1000 as decimal(18,3)) as [total_elapsed_timeSec] --ΠžΠ±Ρ‰Π΅Π΅ врСмя, ΠΈΡΡ‚Π΅ΠΊΡˆΠ΅Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° поступлСния запроса (Π² сСкундах)
,t.[total_elapsed_time] --ΠžΠ±Ρ‰Π΅Π΅ врСмя, ΠΈΡΡ‚Π΅ΠΊΡˆΠ΅Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° поступлСния запроса (Π² миллисСкундах)
,t.[scheduler_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ запрос
,t.[task_address] --АдрСс Π±Π»ΠΎΠΊΠ° памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ для Π·Π°Π΄Π°Ρ‡ΠΈ, связанной с этим запросом
,t.[reads] --Число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΌ запросом
,t.[writes] --Число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΌ запросом
,t.[logical_reads] --Число логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΌ запросом
,t.[text_size] --Установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° TEXTSIZE для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[language] --Установка языка для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[date_format] --Установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° DATEFORMAT для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[date_first] --Установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° DATEFIRST для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[quoted_identifier] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ QUOTED_IDENTIFIER для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[arithabort] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ARITHABORT для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[ansi_null_dflt_on] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ANSI_NULL_DFLT_ON для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[ansi_defaults] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ANSI_DEFAULTS для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[ansi_warnings] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ANSI_WARNINGS для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[ansi_padding] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ANSI_PADDING для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON)
,t.[ansi_nulls] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ANSI_NULLS для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[concat_null_yields_null] --1 = ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CONCAT_NULL_YIELDS_NULL для запроса Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (ON). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” 0
,t.[transaction_isolation_level] --Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ изоляции, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ создана транзакция для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,cast(t.[lock_timeout]/1000 as decimal(18,3)) as [lock_timeoutSec] --ВрСмя оТидания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса (Π² сСкундах)
,t.[lock_timeout] --ВрСмя оТидания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса (Π² миллисСкундах)
,t.[deadlock_priority] --Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° DEADLOCK_PRIORITY для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[row_count] --Число строк, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ запросу
,t.[prev_error] --ПослСдняя ошибка, ΠΏΡ€ΠΎΠΈΡΡˆΠ΅Π΄ΡˆΠ°Ρ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса
,t.[nest_level] --Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности ΠΊΠΎΠ΄Π°, выполняСмого для Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса
,t.[granted_query_memory] --Число страниц, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… для выполнСния ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠ΅Π³ΠΎ запроса (1 страница-это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 8 ΠšΠ‘)
,t.[executing_managed_code] --Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, выполняСт Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ запрос Π² настоящСС врСмя ΠΊΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° срСды CLR (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°).
--Π­Ρ‚ΠΎΡ‚ Ρ„Π»Π°Π³ установлСн Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ срСды CLR находится Π² стСкС, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΈΠ· срСды вызываСтся ΠΊΠΎΠ΄ Transact-SQL
,t.[group_id]	--Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ этот запрос
,t.[query_hash] --Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рассчитываСтся для запроса ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ запросов с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.
--МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡΡˆ запроса для опрСдСлСния использования статистичСских рСсурсов для запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ своими Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями
,t.[query_plan_hash] --Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рассчитываСтся для ΠΏΠ»Π°Π½Π° выполнСния запроса ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Π½ΠΎΠ² выполнСния запросов.
--МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡΡˆ ΠΏΠ»Π°Π½Π° запроса для нахоТдСния совокупной стоимости запросов со схоТими ΠΏΠ»Π°Π½Π°ΠΌΠΈ выполнСния
,t.[most_recent_session_id] --ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСанса самого послСднСго запроса, связанного с Π΄Π°Π½Π½Ρ‹ΠΌ соСдинСниСм
,t.[connect_time] --ΠžΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установлСния соСдинСния
,t.[net_transport] --Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ описаниС физичСского транспортного ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ соСдинСниСм
,t.[protocol_type] --Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
,t.[protocol_version] --ВСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, связанного с Π΄Π°Π½Π½Ρ‹ΠΌ соСдинСниСм
,t.[endpoint_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ соСдинСния. Π­Ρ‚ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ endpoint_id ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для запросов ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ sys.endpoints
,t.[encrypt_option] --ЛогичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π»ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния
,t.[auth_scheme] --Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ схСму ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности (SQL Server ΠΈΠ»ΠΈ Windows), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ с Π΄Π°Π½Π½Ρ‹ΠΌ соСдинСниСм
,t.[node_affinity] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ·Π΅Π» памяти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ соотвСтствуСт Π΄Π°Π½Π½ΠΎΠ΅ соСдинСниС
,t.[num_reads] --Число ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², принятых посрСдством Π΄Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния
,t.[num_writes] --Число ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… посрСдством Π΄Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния
,t.[last_read] --ΠžΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎ послСднСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ…
,t.[last_write] --ΠžΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎ послСднСм ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ…
,t.[net_packet_size] --Π Π°Π·ΠΌΠ΅Ρ€ сСтСвого ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
,t.[client_net_address] --Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ адрСс ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
,t.[client_tcp_port] --НомСр ΠΏΠΎΡ€Ρ‚Π° Π½Π° клиСнтском ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ осущСствлСнии соСдинСния
,t.[local_net_address] --IP-адрСс сСрвСра, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ установлСно Π΄Π°Π½Π½ΠΎΠ΅ соСдинСниС. ДоступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для соСдинСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² качСствС транспорта Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP
,t.[local_tcp_port] --TCP-ΠΏΠΎΡ€Ρ‚ сСрвСра, Ссли соСдинСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP
,t.[parent_connection_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ΅ соСдинСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² сСансС MARS
,t.[most_recent_sql_handle] --ДСскриптор послСднСго запроса SQL, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ проводится синхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ столбцом most_recent_sql_handle ΠΈ столбцом most_recent_session_id
,t.[host_process_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ процСсса клиСнтской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π»Π° сСанс. Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ сСанса это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,t.[client_version] --ВСрсия TDS-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвСру. Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ сСанса это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,t.[client_interface_name] --Имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с сСрвСром. Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ сСанса это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,t.[security_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ бСзопасности Microsoft Windows, связанный с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Ρ…ΠΎΠ΄Π°
,t.[login_name] --SQL Server Имя Π²Ρ…ΠΎΠ΄Π°, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСанс.
--Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ имя Π²Ρ…ΠΎΠ΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» создан сСанс, см. ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ original_login_name.
--ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ SQL Server ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ…ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ подлинности Windows
,t.[nt_domain] --Π”ΠΎΠΌΠ΅Π½ Windows для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ссли Π²ΠΎ врСмя сСанса примСняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности Windows ΠΈΠ»ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ соСдинСниС.
--Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сСансов ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρƒ, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,t.[nt_user_name] --Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Windows для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ссли Π²ΠΎ врСмя сСанса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности Windows ΠΈΠ»ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ соСдинСниС.
--Для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сСансов ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρƒ, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ NULL
,t.[memory_usage] --ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ 8-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… страниц памяти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΌ сСансом
,t.[total_scheduled_time] --ΠžΠ±Ρ‰Π΅Π΅ врСмя, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ сСансу (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ запросы) для исполнСния, Π² миллисСкундах
,t.[last_request_start_time] --ВрСмя, ΠΊΠΎΠ³Π΄Π° начался послСдний запрос Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСанса. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ запрос, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚
,t.[last_request_end_time] --ВрСмя Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ послСднСго запроса Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСанса
,t.[is_user_process] --0, Ссли сСанс являСтся систСмным. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 1
,t.[original_security_id] --Microsoft Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ бСзопасности Windows, связанный с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ original_login_name
,t.[original_login_name] --SQL Server Имя Π²Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ создал Π΄Π°Π½Π½Ρ‹ΠΉ сСанс.
--Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ имя Π²Ρ…ΠΎΠ΄Π° SQL Server, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ подлинности, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° Windows, 
--ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ подлинности, ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
--ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послС ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ соСдинСния для сСанса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ нСявных ΠΈΠ»ΠΈ явных ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста.
--НапримСр Ссли EXECUTE AS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
,t.[last_successful_logon] --ВрСмя послСднСго ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² систСму для ΠΈΠΌΠ΅Π½ΠΈ original_login_name Π΄ΠΎ запуска Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса
,t.[last_unsuccessful_logon] --ВрСмя послСднСго Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² систСму для ΠΈΠΌΠ΅Π½ΠΈ original_login_name Π΄ΠΎ запуска Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса
,t.[unsuccessful_logons] --Число Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π²Ρ…ΠΎΠ΄Π° Π² систСму для ΠΈΠΌΠ΅Π½ΠΈ original_login_name ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ last_successful_logon ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ login_time
,t.[authenticating_database_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ подлинности участника.
--Для ΠΈΠΌΠ΅Π½ Π²Ρ…ΠΎΠ΄Π° это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0.
--Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
,t.[sql_handle] --Π₯эш-ΠΊΠ°Ρ€Ρ‚Π° тСкста SQL-запроса
,t.[statement_start_offset] --ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ символов Π² выполняСмом Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° тСкущая инструкция.
--ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ вмСстС с функциями динамичСского управлСния sql_handle, statement_end_offset ΠΈ sys.dm_exec_sql_text
--для извлСчСния исполняСмой Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ инструкции ΠΏΠΎ запросу
,t.[statement_end_offset] --ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ символов Π² выполняСмом Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ тСкущая инструкция.
--ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ вмСстС с функциями динамичСского управлСния sql_handle, statement_end_offset ΠΈ sys.dm_exec_sql_text
--для извлСчСния исполняСмой Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ инструкции ΠΏΠΎ запросу
,t.[plan_handle] --Π₯эш-ΠΊΠ°Ρ€Ρ‚Π° ΠΏΠ»Π°Π½Π° выполнСния SQL
,t.[database_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся запрос
,t.[user_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ²ΡˆΠ΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ запрос
,t.[connection_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ соСдинСния, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ поступил запрос
,t.[is_blocking_other_session] --1-сСссия явно Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСссии, 0-сСссия явно Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСссии
,coalesce(t.[dop], mg.[dop]) as [dop] --Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° запроса
,mg.[request_time] --Π”Π°Ρ‚Π° ΠΈ врСмя обращСния запроса Π·Π° прСдоставлСниСм памяти
,mg.[grant_time] --Π”Π°Ρ‚Π° ΠΈ врСмя, ΠΊΠΎΠ³Π΄Π° запросу Π±Ρ‹Π»Π° прСдоставлСна ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»Π° прСдоставлСна
,mg.[requested_memory_kb] --ΠžΠ±Ρ‰ΠΈΠΉ объСм Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΉ памяти Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ…
,mg.[granted_memory_kb] --ΠžΠ±Ρ‰ΠΈΠΉ объСм фактичСски прСдоставлСнной памяти Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ….
--ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»Π° прСдоставлСна.
--ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ с requested_memory_kb.
--Для создания индСкса сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСдоставлСниС ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ памяти,
--объСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ прСдоставлСнной памяти
,mg.[required_memory_kb] --ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ… (ΠšΠ‘), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ requested_memory_kb Ρ€Π°Π²Π½ΠΎ этому ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΈΠ»ΠΈ большС Π΅Π³ΠΎ
,mg.[used_memory_kb] --Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ объСм физичСской памяти (Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ…)
,mg.[max_used_memory_kb] --ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π΄ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° физичСской памяти Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ…
,mg.[query_cost] --ОТидаСмая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ запроса
,mg.[timeout_sec] --ВрСмя оТидания Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса Π² сСкундах Π΄ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ обращСния Π·Π° прСдоставлСниСм памяти
,mg.[resource_semaphore_id] --ΠΠ΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСмафора рСсурса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ запрос
,mg.[queue_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π΅ΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π½Π½Ρ‹ΠΉ запрос ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ прСдоставлСния памяти.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡƒΠΆΠ΅ прСдоставлСна
,mg.[wait_order] --ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ порядок ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… запросов Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ queue_id.
--Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса, Ссли Π΄Ρ€ΡƒΠ³ΠΈΠ΅ запросы ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ прСдоставлСния памяти ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π΅Π΅.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡƒΠΆΠ΅ прСдоставлСна
,mg.[is_next_candidate] --ЯвляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ Π½Π° прСдоставлСниС памяти (1 = Π΄Π°, 0 = Π½Π΅Ρ‚, NULL = ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡƒΠΆΠ΅ прСдоставлСна)
,mg.[wait_time_ms] --ВрСмя оТидания Π² миллисСкундах. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ ΡƒΠΆΠ΅ прСдоставлСна
,mg.[pool_id] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡƒΠ»Π° рСсурсов, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ данная Π³Ρ€ΡƒΠΏΠΏΠ° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
,mg.[is_small] --Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ прСдоставлСния памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ°Π»Ρ‹ΠΉ сСмафор рСсурса.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ сСмафора
,mg.[ideal_memory_kb] --ОбъСм, Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ… (ΠšΠ‘), прСдоставлСнной памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для размСщСния всСх Π΄Π°Π½Π½Ρ‹Ρ… Π² физичСской памяти.
--ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ Π½Π° ΠΎΡ†Π΅Π½ΠΊΠ΅ количСства элСмСнтов
,mg.[reserved_worker_count] --Число Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов, Π° Ρ‚Π°ΠΊΠΆΠ΅ число основных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… всСми запросами
,mg.[used_worker_count] --Число Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов
,mg.[max_used_worker_count] --???
,mg.[reserved_node_bitmap] --???
,pl.[bucketid] --Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСгмСнта Ρ…ΡΡˆΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ запись.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ 0 Π΄ΠΎ значСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для Ρ‚ΠΈΠΏΠ° кэша.
--Для кэшСй SQL Plans ΠΈ Object Plans Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ 10007 Π½Π° 32-разрядных вСрсиях систСм ΠΈ 40009 β€” Π½Π° 64-разрядных.
--Для кэша Bound Trees Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ 1009 Π½Π° 32-разрядных вСрсиях систСм ΠΈ 4001 Π½Π° 64-разрядных.
--Для кэша Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ 127 Π½Π° 32-разрядных ΠΈ 64-разрядных вСрсиях систСм
,pl.[refcounts] --Число ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² кэша, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ кэша.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ refcounts для записи Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ мСньшС 1, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² кэшС
,pl.[usecounts] --ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° кэша.
--ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Π±Π΅Π· увСличСния, Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ запросы ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ»Π°Π½ Π² кэшС.
--ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ нСсколько Ρ€Π°Π· ΠΏΡ€ΠΈ использовании инструкции showplan
,pl.[size_in_bytes] --Число Π±Π°ΠΉΡ‚ΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ кэша
,pl.[memory_object_address] --АдрСс памяти ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ записи.
--Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с прСдставлСниСм sys.dm_os_memory_objects,
--Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ распрСдСлСниС памяти ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°, 
--ΠΈ с прСдставлСниСм sys.dm_os_memory_cache_entries для опрСдСлСния Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ записи
,pl.[cacheobjtype] --Π’ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² кэшС. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…
,pl.[objtype] --Π’ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…
,pl.[parent_plan_handle] --Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠ»Π°Π½
--Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· sys.dm_exec_query_stats Π±Ρ€Π°Π»ΠΈΡΡŒ Π·Π° сутки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»Π° ΠΏΠ°Ρ€Π° (запрос, ΠΏΠ»Π°Π½)
,qs.[creation_time] --ВрСмя компиляции ΠΏΠ»Π°Π½Π°
,qs.[execution_count] --ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй компиляции
,qs.[total_worker_time] --ΠžΠ±Ρ‰Π΅Π΅ врСмя ЦП, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° компиляции, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[min_last_worker_time] --МинимальноС врСмя ЦП, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° послСднСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[max_last_worker_time] --МаксимальноС врСмя ЦП, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° послСднСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[min_worker_time] --МинимальноС врСмя ЦП, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[max_worker_time] --МаксимальноС врСмя ЦП, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[total_physical_reads] --ΠžΠ±Ρ‰Π΅Π΅ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ физичСского считывания ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[min_last_physical_reads] --МинимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ физичСского считывания Π·Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[max_last_physical_reads] --МаксимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ физичСского считывания Π·Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[min_physical_reads] --МинимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ физичСского считывания Π·Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[max_physical_reads] --МаксимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ физичСского считывания Π·Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[total_logical_writes] --ΠžΠ±Ρ‰Π΅Π΅ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСской записи ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[min_last_logical_writes] --МинимальноС количСство страниц Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ ΠΏΡƒΠ»Π΅, загрязнСнных Π²ΠΎ врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Если страница ΡƒΠΆΠ΅ являСтся «грязной» (Ρ‚. Π΅. ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ), ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[max_last_logical_writes] --МаксимальноС количСство страниц Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ ΠΏΡƒΠ»Π΅, загрязнСнных Π²ΠΎ врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Если страница ΡƒΠΆΠ΅ являСтся «грязной» (Ρ‚. Π΅. ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ), ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[min_logical_writes] --МинимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСской записи Π·Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[max_logical_writes] --МаксимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСской записи Π·Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[total_logical_reads] --ΠžΠ±Ρ‰Π΅Π΅ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСского считывания ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[min_last_logical_reads] --МинимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСского считывания Π·Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[max_last_logical_reads] --МаксимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСского считывания Π·Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[min_logical_reads]	   --МинимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСского считывания Π·Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[max_logical_reads]	--МаксимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ логичСского считывания Π·Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0 ΠΏΡ€ΠΈ запросС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
,qs.[total_clr_time]	--ВрСмя, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды),
--Π²Π½ΡƒΡ‚Ρ€ΠΈ Microsoft .NET Framework общСязыковая срСда выполнСния (CLR) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, функциями, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ, Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ статистичСскими выраТСниями
,qs.[min_last_clr_time] --МинимальноС врСмя, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды),
--Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ .NET Framework ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR Π²ΠΎ врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, функциями, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ, Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ статистичСскими выраТСниями
,qs.[max_last_clr_time] --МаксимальноС врСмя, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды),
--Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ .NET Framework ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR Π²ΠΎ врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, функциями, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ, Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ статистичСскими выраТСниями
,qs.[min_clr_time] --МинимальноС врСмя, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² .NET Framework срСды CLR,
--Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды).
--ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, функциями, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ, Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ статистичСскими выраТСниями
,qs.[max_clr_time] --МаксимальноС врСмя, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ срСды CLR .NET Framework,
--Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды).
--ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ срСды CLR ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, функциями, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ, Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ статистичСскими выраТСниями
--,qs.[total_elapsed_time] --ΠžΠ±Ρ‰Π΅Π΅ врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[min_last_elapsed_time] --МинимальноС врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° послСднСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[max_last_elapsed_time] --МаксимальноС врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° послСднСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[min_elapsed_time] --МинимальноС врСмя, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[max_elapsed_time] --МаксимальноС врСмя, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°, Π² микросСкундах (Π½ΠΎ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды)
,qs.[total_rows] --ΠžΠ±Ρ‰Π΅Π΅ число строк, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… запросом. НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0, Ссли скомпилированная Π² собствСнном ΠΊΠΎΠ΄Π΅ хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
,qs.[min_last_rows] --МинимальноС число строк, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Ρ… послСдним Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запроса. НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0, Ссли скомпилированная Π² собствСнном ΠΊΠΎΠ΄Π΅ хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
,qs.[max_last_rows] --МаксимальноС число строк, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Ρ… послСдним Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запроса. НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0, Ссли скомпилированная Π² собствСнном ΠΊΠΎΠ΄Π΅ хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
,qs.[min_rows] --МинимальноС количСство строк, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎ запросу Π²ΠΎ врСмя выполнСния ΠΎΠ΄ΠΈΠ½
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0, Ссли скомпилированная Π² собствСнном ΠΊΠΎΠ΄Π΅ хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
,qs.[max_rows] --МаксимальноС число строк, ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎ запросу Π²ΠΎ врСмя выполнСния ΠΎΠ΄ΠΈΠ½
--Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда Ρ€Π°Π²Π½ΠΎ 0, Ссли скомпилированная Π² собствСнном ΠΊΠΎΠ΄Π΅ хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ для памяти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
,qs.[total_dop] --ΠžΠ±Ρ‰ΡƒΡŽ сумму ΠΏΠΎ стСпСни ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠ»Π°Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_last_dop] --Минимальная ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Ссли врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_last_dop] --Максимальная ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Ссли врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_dop] --Минимальная ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° этот ΠΏΠ»Π°Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ врСмя ΠΎΠ΄Π½ΠΎΠ³ΠΎ выполнСния.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_dop] --Максимальная ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° этот ΠΏΠ»Π°Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ врСмя ΠΎΠ΄Π½ΠΎΠ³ΠΎ выполнСния.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[total_grant_kb] --ΠžΠ±Ρ‰ΠΈΠΉ объСм Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти Π² ΠšΠ‘ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот ΠΏΠ»Π°Π½, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_last_grant_kb] --ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти прСдоставляСт Π² ΠšΠ‘, ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_last_grant_kb] --ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти прСдоставляСт Π² ΠšΠ‘, ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_grant_kb] --ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти Π² ΠšΠ‘ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π² Ρ…ΠΎΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_grant_kb] --ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти Π² ΠšΠ‘ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π² Ρ…ΠΎΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[total_used_grant_kb] --ΠžΠ±Ρ‰ΠΈΠΉ объСм Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ памяти Π² ΠšΠ‘ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот ΠΏΠ»Π°Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_last_used_grant_kb] --Минимальная сумма прСдоставлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти Π² ΠšΠ‘, Ссли врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_last_used_grant_kb] --Максимальная сумма прСдоставлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти Π² ΠšΠ‘, Ссли врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_used_grant_kb] --ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти Π² ΠšΠ‘ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_used_grant_kb] --ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти Π² ΠšΠ‘ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[total_ideal_grant_kb] --ΠžΠ±Ρ‰ΠΈΠΉ объСм ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠšΠ‘, ΠΎΡ†Π΅Π½ΠΊΠ° ΠΏΠ»Π°Π½Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_last_ideal_grant_kb] --ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ прСдоставляСт Π² ΠšΠ‘, ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_last_ideal_grant_kb] --ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ прСдоставляСт Π² ΠšΠ‘, ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_ideal_grant_kb] --ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ прСдоставлСния Π² этот ΠΏΠ»Π°Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΎΡ†Π΅Π½ΠΊΠ° Π²ΠΎ врСмя выполнСния ΠΎΠ΄ΠΈΠ½ ΠšΠ‘.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_ideal_grant_kb] --ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ прСдоставлСния Π² этот ΠΏΠ»Π°Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΎΡ†Π΅Π½ΠΊΠ° Π²ΠΎ врСмя выполнСния ΠΎΠ΄ΠΈΠ½ ΠšΠ‘.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[total_reserved_threads] --ΠžΠ±Ρ‰Π°Ρ сумма ΠΏΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² этот ΠΏΠ»Π°Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ использовавшСгося с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_last_reserved_threads] --МинимальноС число Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_last_reserved_threads] --МаксимальноС число Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_reserved_threads] --МинимальноС число Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_reserved_threads] --МаксимальноС число Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[total_used_threads] --ΠžΠ±Ρ‰Π°Ρ сумма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² этот ΠΏΠ»Π°Π½ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ использовавшСгося с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π³ΠΎ компиляции.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_last_used_threads] --МинимальноС число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_last_used_threads] --МаксимальноС число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° врСмя послСднСго выполнСния ΠΏΠ»Π°Π½Π°.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[min_used_threads] --МинимальноС число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° использовали.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
,qs.[max_used_threads] --МаксимальноС число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° использовали.
--Он всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 для запроса ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для памяти
from tbl_res_rec as t
left outer join sys.dm_exec_query_memory_grants as mg on t.[plan_handle]=mg.[plan_handle] and t.[sql_handle]=mg.[sql_handle]
left outer join sys.dm_exec_cached_plans as pl on t.[plan_handle]=pl.[plan_handle]
left outer join tbl_rec_stat_g as qs on t.[plan_handle]=qs.[plan_handle] and t.[sql_handle]=qs.[sql_handle] --and qs.[last_execution_time]=cast(t.[start_time] as date);

Gogorarazten dizut, gainera, bildutako estatistiken arabera, eskaera zailenak lor ditzakezula:
Code

/*
creation_time - ВрСмя, ΠΊΠΎΠ³Π΄Π° запрос Π±Ρ‹Π» скомпилирован. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ стартС сСрвСра кэш пустой, Π΄Π°Π½Π½ΠΎΠ΅ врСмя всСгда большС Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ запуска сСрвиса. Если врСмя, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² этом столбцС ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ΅ (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ использованиС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹), это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ запрос ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π±Ρ‹Π» Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½.
last_execution_time - ΠœΠΎΠΌΠ΅Π½Ρ‚ фактичСского послСднСго выполнСния запроса.
execution_count - Бколько Ρ€Π°Π· запрос Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° компиляции
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ позволяСт Π½Π°ΠΉΡ‚ΠΈ ошибки Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… - часто Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ выполняСмых запросах ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ самим Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. НапримСр, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.
CPU - Π‘ΡƒΠΌΠΌΠ°Ρ€Π½ΠΎΠ΅ врСмя использования процСссора Π² миллисСкундах. Если запрос обрабатываСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ это врСмя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ врСмя выполнСния запроса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ суммируСтся врСмя использования запроса ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ядром. Π’ΠΎ врСмя использования процСссора Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ фактичСская Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° ядра, Π² Π½Π΅Π΅ Π½Π΅ входят оТидания ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ рСсурсов.
ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ позволяСт Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ запросы, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ сильно Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ процСссор.
AvgCPUTime - БрСдняя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° процСссора Π½Π° ΠΎΠ΄ΠΈΠ½ запрос. 
TotDuration - ΠžΠ±Ρ‰Π΅Π΅ врСмя выполнСния запроса, Π² миллисСкундах.
Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для поиска Ρ‚Π΅Ρ… запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, нСзависимо ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ "Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠ»Π³ΠΎ". Если ΠΎΠ±Ρ‰Π΅Π΅ врСмя выполнСния запроса сущСствСнно Π½ΠΈΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ CPU (с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π½Π° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ) - это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ выполнСния запроса Π±Ρ‹Π»ΠΈ оТидания ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ рСсурсов. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это связано с дисковой Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сСтСвой интСрфСйс ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ рСсурс. 
ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² описании прСдставлСния sys.dm_os_wait_stats.
AvgDur - Π‘Ρ€Π΅Π΄Π½Π΅Π΅ врСмя выполнСния запроса Π² миллисСкундах.
Reads - ΠžΠ±Ρ‰Π΅Π΅ количСство Ρ‡Ρ‚Π΅Π½ΠΈΠΉ.
Π­Ρ‚ΠΎ ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ сСрвСр запросы.
ЛогичСскоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ - это Ρ€Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ страницС Π΄Π°Π½Π½Ρ‹Ρ…, физичСскиС чтСния Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ.
Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… выполнСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ обращСния ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ страницС.
Π§Π΅ΠΌ большС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ страницам, Ρ‚Π΅ΠΌ большС трСбуСтся дисковых Ρ‡Ρ‚Π΅Π½ΠΈΠΉ, памяти ΠΈ, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… обращСниях, большСС врСмя трСбуСтся ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ страницы Π² памяти.
Writes - ΠžΠ±Ρ‰Π΅Π΅ количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ страниц Π΄Π°Π½Π½Ρ‹Ρ….
Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎ, ΠΊΠ°ΠΊ запрос "Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚" Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ систСму опСрациями записи.
Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС 0 Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Ρ‚Π΅Ρ… запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ явно ΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Ρƒ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² tempdb.
AggIO - ΠžΠ±Ρ‰Π΅Π΅ количСство логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (суммарно)
Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, количСство логичСских Ρ‡Ρ‚Π΅Π½ΠΈΠΉ Π½Π° порядки ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи, поэтому этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ сам ΠΏΠΎ сСбС для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π² Ρ€Π΅Π΄ΠΊΠΈΡ… случаях.
AvgIO - Π‘Ρ€Π΅Π΄Π½Π΅Π΅ количСство логичСских дисковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса.
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ показатСля ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сообраТСний:
Одна страница Π΄Π°Π½Π½Ρ‹Ρ… - это 8192 Π±Π°ΠΉΡ‚Π°. МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ срСднСС количСство Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, "ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ…" Π΄Π°Π½Π½Ρ‹ΠΌ запросом. Если этот объСм ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ количСство Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запрос (суммарный объСм Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² запросС Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…), это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΠ»Π°Π½ выполнСния ΠΈ трСбуСтся Π·Π°Π½ΡΡ‚ΡŒΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса.
Π― встрСчал случай, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ запрос Π΄Π΅Π»Π°Π» количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ, эквивалСнтных ΠΎΠ±ΡŠΠ΅ΠΌΡƒ Π² 5Π’Π±, ΠΏΡ€ΠΈ этом ΠΎΠ±Ρ‰ΠΈΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ… Π² это Π‘Π” Π±Ρ‹Π» 300Π“Π±, Π° объСм Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, задСйствованных Π² запросС Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π» 10Π“Π±.
Π’ ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния сСрвСра - вмСсто использования индСкса сСрвСр ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.
Если объСм логичСских Ρ‡Ρ‚Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Ρ‹ прСвосходит ΠΎΠ±Ρ‰ΠΈΠ΅ объСм Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ это Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ обращСниям ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ страницам Π΄Π°Π½Π½Ρ‹Ρ…. Помимо Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ запросС Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована нСсколько Ρ€Π°Π·, ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ страницам сСрвСр обращаСтся Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² случаях, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ индСкс ΠΈ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ поиска ΠΏΠΎ Π½Π΅ΠΌΡƒ, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ строки Π΄Π°Π½Π½Ρ‹Ρ… Π»Π΅ΠΆΠ°Ρ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ страницС. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ - Π² этом случаС сСрвСр обращался Π±Ρ‹ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Однако этому часто ΠΌΠ΅ΡˆΠ°ΡŽΡ‚... ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ индСкс ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ соСдинСния Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ использован.
ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ случай - вмСсто использования индСкса Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ статистика устарСла ΠΈ трСбуСтся Π΅Ρ‘ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Однако ΠΈ Π² этом случаС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ подсказки ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ запросов.
query_text - ВСкст самого запроса
database_name - Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π² находится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий запрос. NULL для систСмных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€
object_name - Имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), содСрТащСго запрос.
*/
with s as (
select  creation_time,
last_execution_time,
execution_count,
total_worker_time/1000 as CPU,
convert(money, (total_worker_time))/(execution_count*1000)as [AvgCPUTime],
qs.total_elapsed_time/1000 as TotDuration,
convert(money, (qs.total_elapsed_time))/(execution_count*1000)as [AvgDur],
total_logical_reads as [Reads],
total_logical_writes as [Writes],
total_logical_reads+total_logical_writes as [AggIO],
convert(money, (total_logical_reads+total_logical_writes)/(execution_count + 0.0))as [AvgIO],
[sql_handle],
plan_handle,
statement_start_offset,
statement_end_offset
from sys.dm_exec_query_stats as qs with(readuncommitted)
where convert(money, (qs.total_elapsed_time))/(execution_count*1000)>=100 --выполнялся запрос Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 100 мс
)
select
s.creation_time,
s.last_execution_time,
s.execution_count,
s.CPU,
s.[AvgCPUTime],
s.TotDuration,
s.[AvgDur],
s.[Reads],
s.[Writes],
s.[AggIO],
s.[AvgIO],
--st.text as query_text,
case 
when sql_handle IS NULL then ' '
else(substring(st.text,(s.statement_start_offset+2)/2,(
case
when s.statement_end_offset =-1 then len(convert(nvarchar(MAX),st.text))*2      
else s.statement_end_offset    
end - s.statement_start_offset)/2  ))
end as query_text,
db_name(st.dbid) as database_name,
object_schema_name(st.objectid, st.dbid)+'.'+object_name(st.objectid, st.dbid) as [object_name],
sp.[query_plan],
s.[sql_handle],
s.plan_handle
from s
cross apply sys.dm_exec_sql_text(s.[sql_handle]) as st
cross apply sys.dm_exec_query_plan(s.[plan_handle]) as sp

MySQLrako ere idatz dezakezu. Horretarako, instalatu behar duzu mysql-connector-net eta gero idatzi honelako zerbait:
Zain dauden eskaeren kodea

#Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ MySQL ΠΈ само ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
[string]$sMySQLUserName = 'UserName'
[string]$sMySQLPW = 'UserPassword'
[string]$sMySQLDB = 'db'
[string]$sMySQLHost = 'IP-address'
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data");
[string]$sConnectionString = "server="+$sMySQLHost+";port=3306;uid=" + $sMySQLUserName + ";pwd="+"'" + $sMySQLPW +"'"+ ";database="+$sMySQLDB;
#Open a Database connection
$oConnection = New-Object MySql.Data.MySqlClient.MySqlConnection($sConnectionString)
$Error.Clear()
try
{
$oConnection.Open()
}
catch
{
write-warning ("Could not open a connection to Database $sMySQLDB on Host $sMySQLHost. Error: "+$Error[0].ToString())
}
#The first query
# Get an instance of all objects need for a SELECT query. The Command object
$oMYSQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand;
# DataAdapter Object
$oMYSQLDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter;
# And the DataSet Object
$oMYSQLDataSet = New-Object System.Data.DataSet;
# Assign the established MySQL connection
$oMYSQLCommand.Connection=$oConnection;
# Define a SELECT query
$oMYSQLCommand.CommandText='query';
$oMYSQLDataAdapter.SelectCommand=$oMYSQLCommand;
# Execute the query
$count=$oMYSQLDataAdapter.Fill($oMYSQLDataSet, "data");
$result = $oMYSQLDataSet.Tables[0].Rows[0]["Count"];
write-host $result;

Emaitza

Artikulu honek Zabbixeko errendimendu-kontagailuen (elementuak) adibide bat jaso du. Ikuspegi honek administratzaileei hainbat arazoren berri denbora errealean edo denbora jakin baten ondoren jakinaraztea ahalbidetzen dizu. Beraz, ikuspegi honek etorkizunean arazo kritiko bat agertzea minimizatzeko eta DBMS eta zerbitzariaren funtzionamendua geldiarazteko aukera ematen du, eta, aldi berean, ekoizpena lan-prozesuak geldiarazteko babesten du.
Aurreko artikulua: Ohiko lana MS SQL Server-en informazio sistemaren datu-basearekin 24Γ—7

Iturriak:

Β» Zabbix 3.4
Β» Errendimendu-kontagailuak
Β» Azure SQL Database eta SQL Server Database Engine for Performance Center
Β» SQL Bizimodua
Β» SQLSkills
Β» Microsoft TechNet
Β» Memoriaren erabilera aztertzea
Β» Errendimenduaren analisia
Β» SQL Dokumentazioa
Β» Windows Oharrak

Iturria: www.habr.com

Gehitu iruzkin berria