Uporaba Zabbixa za spremljanje baze podatkov MS SQL Server

Predgovor

Pogosto je potrebno skrbnika obveőčati o težavah v zvezi z bazo (bazo) v realnem času.

Ta članek bo opisal, kaj je treba konfigurirati v Zabbixu za spremljanje baze podatkov MS SQL Server.

Opozarjam vas na dejstvo, da podrobnosti o konfiguraciji ne bodo podane, vendar bodo v tem članku podane formule in sploőna priporočila ter podroben opis dodajanja podatkovnih elementov po meri prek shranjenih postopkov.
Poleg tega bodo tukaj obravnavani le glavni Ε‘tevci zmogljivosti.

odločitev

Najprej bom opisal vse tiste Ε‘tevce uspeΕ‘nosti (preko elementov v Zabbixu), ki jih potrebujemo:

  1. Logični disk
    1. Povpr. disk s/branje
      Prikazuje povprečni čas v sekundah za branje podatkov z diska. Povprečna vrednost őtevca Avg performance. Disk sec/Read ne sme preseči 10 milisekund. Največja vrednost őtevca Avg performance. Disk sec/Read ne sme preseči 50 milisekund.

      Zabbix: perf_counter[LogicalDisk(_Total)Avg. Disk sec/Read], pomembno pa je tudi spremljanje ΕΎelenega diska, na primer: perf_counter[LogicalDisk(C:)Avg. Disk sec/branje]

      Primeri sproΕΎilcev:
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Avg. Disk sec/Read].last()}>0.005, visoka raven
      ΠΈ
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Avg. Disk sec/Read].last()}>0.0025, raven-srednja

    2. Povpr. disk s/zapis
      Prikazuje povprečni čas v sekundah za zapisovanje podatkov na disk. Povprečna vrednost őtevca Avg performance. Disk sec/Write ne sme preseči 10 milisekund. Največja vrednost őtevca Avg performance. Disk sec/Write ne sme preseči 50 milisekund.

      Zabbix: perf_counter[LogicalDisk(_Total)Avg. Disk sec/Write], pomembno pa je tudi, da sledite ΕΎelenemu disku, na primer: perf_counter[LogicalDisk(C:)Avg. Disk sec/Write]

      Primeri sproΕΎilcev:
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Avg. Disk sec/Write].last()}>0.005, visoka raven
      ΠΈ
      {NODE_NAME:perf_counter[LogicalDisk(_Total)Avg. Disk sec/Write].last()}>0.0025, raven-srednja

    3. Povprečna dolžina čakalne vrste na disku

      Povprečna dolžina čakalne vrste zahtev na disku. Prikaže őtevilo čakajočih zahtev za disk v določenem časovnem intervalu. Običajna čakalna vrsta ni več kot 2 za en disk. Če sta v čakalni vrsti več kot dve zahtevi, je disk verjetno preobremenjen in nima časa za obdelavo dohodnih zahtev. S őtevci Avg lahko ugotovite, katerih operacij disk ne zmore. Dolžina čakalne vrste za branje diska (čakalna vrsta zahtev za branje) in povpr. Dolžina čakalne vrste diska Wright (čakalna vrsta zahtev za pisanje).
      Povprečna vrednost. Dolžina čakalne vrste na disku se ne meri, temveč izračuna po Littleovem zakonu iz matematične teorije čakalnih vrst. Po tem zakonu je őtevilo zahtevkov, ki čakajo na obdelavo, v povprečju enako pogostosti prejetih zahtevkov, pomnoženi s časom obdelave zahtevka. Tisti. v naőem primeru Avg. Dolžina čakalne vrste na disku = (Prenosi diska/s) * (Povpr. disk s/prenos).

      avg. Dolžina čakalne vrste diska je podana kot eden glavnih őtevcev za določanje delovne obremenitve diskovnega podsistema, vendar je za njeno ustrezno oceno potrebno natančno predstavljanje fizične strukture pomnilniőkega sistema. Na primer, za en trdi disk velja, da je vrednost, večja od 2, kritična, in če je disk v polju RAID s 4 diski, vas mora skrbeti, če je vrednost večja od 4 * 2 = 8.

      Zabbix: perf_counter[LogicalDisk(_Total)Avg. Disk Queue Length], pomembno pa je tudi spremljanje želenega diska, na primer: perf_counter[LogicalDisk(C:)Avg. Dolžina čakalne vrste diska]

  2. Spomin
    1. Strani/s
      Prikazuje őtevilo strani, ki jih je SQL Server prebral z diska ali zapisal na disk, da bi razreőil dostope do strani pomnilnika, ki v času dostopa niso bile naložene v glavni pomnilnik. Ta vrednost je vsota vrednosti Pages Input/sec in Pages Output/sec ter upoőteva tudi ostranjevanje (swapping/swapping) sistemskega predpomnilnika za dostop do podatkovnih datotek aplikacije. Vključuje tudi ostranjevanje nepredpomnjenih neposredno pomnilniőko preslikanih datotek. To je glavni őtevec, na katerega morate biti pozorni, če imate veliko porabo pomnilnika in s tem povezano prekomerno ostranjevanje. Ta őtevec označuje količino zamenjave in njegova normalna (ne najviőja) vrednost mora biti blizu ničle. Povečanje zamenjave kaže na potrebo po povečanju RAM-a ali zmanjőanju őtevila aplikacij, ki se izvajajo na strežniku.

      Zabbix: perf_counter[PomnilniΕ‘ke strani/sek] Primer sproΕΎilca:
      {NOTE_NAME:perf_counter[MemoryPages/sec].min(5m)}>1000, informacija o ravni

    2. Napake strani/sek

      To je vrednost őtevca napak strani. Napaka strani se pojavi, ko se proces sklicuje na stran navideznega pomnilnika, ki ni v delovnem nizu RAM-a. Ta őtevec upoőteva tako tiste napake strani, ki zahtevajo dostop do diska, kot tiste, ki jih povzroča stran, ki je zunaj delovnega niza v RAM-u. Večina procesorjev lahko obravnava napake strani tipa XNUMX brez večjih zamud. Vendar lahko obravnavanje napak strani tipa XNUMX, ki zahtevajo dostop do diska, povzroči znatne zamude.

      Zabbix: perf_counter[napake pomnilniΕ‘ke strani/s] Primer sproΕΎilca:
      {NODE_NAME:perf_counter[MemoryPage Faults/sec].min(5m)}>1000, informacije o ravni

    3. RazpoloΕΎljivi bajti

      Sledi količini pomnilnika v bajtih, ki je na voljo za izvajanje različnih procesov. Nizke őtevilke pomenijo malo pomnilnika. Reőitev je povečanje pomnilnika. Ta őtevec bi moral biti v večini primerov stalno nad 5000 kV.
      Smiselno je ročno nastaviti prag za razpoložljive megabajte iz naslednjih razlogov:

      β€’ 50 % prostega pomnilnika = odlično
      β€’25 % razpoloΕΎljivega pomnilnika = Potrebuje pozornost
      β€’10 % brezplačno = moΕΎne teΕΎave
      β€’ Manj kot 5 % razpoloΕΎljivega pomnilnika = Kritično za hitrost, morate posredovati.
      Zabbix: perf_counter [razpoloΕΎljivi pomnilniki]

  3. Procesor (skupaj): % procesorskega časa
    Ta őtevec prikazuje odstotek časa, ko je bil procesor zaposlen z izvajanjem operacij za nedejavne niti (nitje, ki ni v mirovanju). To vrednost lahko obravnavamo kot delček časa, potrebnega za opravljanje koristnega dela. Vsak procesor je mogoče dodeliti nedejavni niti, ki porablja neproduktivne cikle procesorja, ki jih druge niti ne uporabljajo. Za ta őtevec so značilni kratki vrhovi, ki lahko dosežejo 100 odstotkov. Če pa pride do daljőih obdobij, ko je izkoriőčenost procesorja nad 80 odstotkov, bo sistem bolj učinkovit, če uporablja več procesorjev.

    Zabbix: perf_counter[Procesor(_Total)% procesorskega časa], tukaj se lahko prikaže tudi po jedrih
    Primer sproΕΎilca:
    {NODE_NAME:perf_counter[Processor(_Total)% Processor Time].min(5m)}>80, level-info

  4. OmreΕΎni vmesnik (*): % bajtov skupaj/sek
    Skupno őtevilo poslanih in prejetih bajtov na sekundo prek vseh vmesnikov. To je pasovna őirina vmesnika (v bajtih). Vrednost tega őtevca je treba primerjati z največjo pasovno őirino omrežne kartice. Na sploőno naj bi ta őtevec pokazal največ 50-odstotno izkoriőčenost pasovne őirine omrežnega adapterja.
    Zabbix: perf_counter[omreΕΎni vmesnik(*)Poslani bajti/s]
  5. MS SQL Server: Metode dostopa
    Objekt Access Methods v SQL Server nudi őtevce, ki vam pomagajo slediti dostopu do logičnih podatkov v zbirki podatkov. Fizični dostop do strani baze podatkov na disku nadzirajo őtevci upravitelja medpomnilnika. Opazovanje metod dostopa do podatkov v bazi podatkov vam pomaga ugotoviti, ali lahko izboljőate zmogljivost poizvedbe z dodajanjem ali spreminjanjem indeksov, dodajanjem ali premikanjem particij, dodajanjem datotek ali skupin datotek, defragmentiranjem indeksov ali spreminjanjem besedila poizvedbe. Uporabite lahko tudi őtevce na objektu Access Methods za spremljanje velikosti podatkov, indeksov in prostega prostora v zbirki podatkov, nadzor glasnosti in razdrobljenosti za vsak primerek strežnika. Prekomerna razdrobljenost indeksov lahko znatno poslabőa zmogljivost.

    1. Razdeli strani/sek
      Število prelomov strani na sekundo, do katerih je priőlo zaradi prelivanja strani indeksa. Velika vrednost tega indikatorja pomeni, da SQL Server izvaja veliko őtevilo operacij, ki zahtevajo veliko virov, da razdeli strani in premakne del obstoječe strani na novo lokacijo, ko izvaja operacije vstavljanja in posodabljanja. Takőnim operacijam se je treba izogibati, kadar koli je to mogoče. Težavo lahko poskusite reőiti na dva načina:
      - Ustvarite gručasti indeks na stolpcih s samodejnim povečanjem. V tem primeru novi vnosi ne bodo postavljeni znotraj strani, ki so že zasedene s podatki, ampak bodo zaporedno zasedli nove strani;
      β€” ponovno zgraditi indekse s povečanjem vrednosti parametra Fillfactor. Ta moΕΎnost omogoča, da se prosti prostor na indeksnih straneh rezervira za nove podatke, ne da bi bilo treba označevati strani.
      Zabbix: perf_counter["MSSQL$InstanceName:Access MethodsPage Splits/sec",30] Primer sproΕΎilca: {NODE_NAME:perf_counter["MSSQL$INStance_NAME:Access MethodsPage Splits/sec",30].last()}>{NODE_NAME:perf_counter["MSSQL$INStance_NAME:SQL StatisticsBatch Requests/sec",30].last()} /5, informacije o ravni
    2. Celotno skeniranje/sek
      Število neomejenih popolnih pregledov na sekundo. Te operacije vključujejo skeniranje osnovne tabele in skeniranje celotnega indeksa. Stabilno povečanje tega indikatorja lahko kaže na degradacijo sistema (pomanjkanje potrebnih indeksov, njihova močna razdrobljenost, neuporaba obstoječih indeksov s strani optimizatorja, prisotnost neuporabljenih indeksov). Vendar je vredno omeniti, da popolno skeniranje majhnih tabel ni vedno slabo, kajti če lahko celotno tabelo spravite v RAM, bo popolno skeniranje le hitreje. Toda v večini primerov bo stabilna rast tega őtevca kazala na degradacijo sistema. Vse to velja samo za sisteme OLTP. V sistemih OLAP so stalni popolni pregledi normalni.
      Zabbix: perf_counter["MSSQL$InstanceName:Access MethodsFull Scans/sec",30]

  6. MS SQL Server: Upravitelj medpomnilnika
    Objekt Buffer Manager zagotavlja Ε‘tevce za spremljanje, kako SQL Server uporablja naslednje vire:
    - pomnilnik za shranjevanje podatkovnih strani;
    - őtevci, ki se uporabljajo za spremljanje fizičnega V/I, ko SQL Server bere in piőe strani baze podatkov;
    - razőiritev področja medpomnilnika za razőiritev predpomnilnika medpomnilnika z uporabo hitrega obstojnega pomnilnika, kot so pogoni SSD (SSD);
    - Spremljanje pomnilnika in Ε‘tevcev, ki jih uporablja SQL Server, pomaga pridobiti naslednje informacije;
    - Ali obstajajo "ozka grla", ki jih povzroča pomanjkanje fizičnega pomnilnika. Če pogosto dostopanih podatkov ni mogoče shraniti v predpomnilnik, jih je SQL Server prisiljen prebrati z diska;
    - ali je mogoče povečati učinkovitost izvajanja poizvedb s povečanjem količine pomnilnika ali dodelitvijo dodatnega pomnilnika za predpomnjenje podatkov ali shranjevanje notranjih struktur SQL Serverja;
    Kako pogosto SQL Server bere podatke z diska. V primerjavi z drugimi operacijami, kot je dostop do pomnilnika, fizični V/I traja dlje. Zmanjőanje V/I lahko izboljőa zmogljivost poizvedb.

    1. Buffer Cache hit radio
      Označuje, kako v celoti lahko SQL Server dodeli podatke v medpomnilniku predpomnilnika. Viőja kot je ta vrednost, bolje je. Da lahko SQL Server učinkovito dostopa do podatkovnih strani, morajo biti le-te v predpomnilniku in ne sme biti nobenih fizičnih vhodno/izhodnih (I/O) operacij. Če se povprečna vrednost tega őtevca stalno zmanjőuje, bi morali razmisliti o dodajanju RAM-a. Ta indikator mora biti vedno nad 90 % za sisteme OLTP in nad 50 % za sisteme OLAP.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Buffer ManagerBuffer cache ratio rate",30] Primeri sproΕΎilcev: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Buffer ManagerBuffer cache hit ratio",30].last()}<70, level-high
      ΠΈ
      {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Buffer ManagerBuffer cache hit ratio",30].last()}<80, level-medium
    2. Pričakovana življenjska doba strani
      Označuje, kako dolgo bo stran trajno ostala v pomnilniku v trenutnem stanju. Če vrednost nenehno pada, to pomeni, da sistem prekomerno uporablja področje medpomnilnika. Tako lahko delovanje pomnilnika potencialno povzroči težave, ki vodijo do poslabőanja zmogljivosti. Omeniti velja, da ni univerzalnega indikatorja, pod katerim bi lahko nedvoumno ocenili, da sistem zlorablja medpomnilniőko področje (indikator 300 sekund je pri MS SQL Server 2012 zastarel).
      Zabbix: perf_counter["MSSQL$INSTENTION_NAME:Pričakovana življenjska doba strani upravitelja medpomnilnika",30] Primer sprožilca: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Buffer ManagerPage pričakovana življenjska doba",30].last()}<5, level-info

  7. MS SQL Server: SploΕ‘na statistika
    Objekt General Statistics v strežniku SQL Server ponuja őtevce, ki vam omogočajo spremljanje celotne dejavnosti strežnika, kot je őtevilo sočasnih povezav in őtevilo uporabnikov na sekundo, ki se povežejo z računalnikom, v katerem se izvaja primerek strežnika SQL Server, ali prekinejo povezavo z njim. Te metrike so uporabne v sistemih za obdelavo velikih spletnih transakcij (OLTP), kjer se veliko őtevilo odjemalcev nenehno povezuje in prekinja povezavo z instanco SQL Server.

    1. Proces blokiran
      Ε tevilo trenutno blokiranih procesov.
      Zabbix: perf_counter["MSSQL$INSPECTION_NAME:Sploőni statistični procesi blokirani",30] Primer sprožilca: ({NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Sploőni statistični procesi blokirani",30].min(2m,0)}>=0)
      in ({NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:General StatisticsProcesses blocked",30].time(0)}>=50000)
      in ({NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:General StatisticsProcesses blocked",30].time(0)}<=230000), informacije o ravni (obstaja omejitev alarma od 05:00 do 23:00)
    2. UporabniΕ‘ke povezave
      Ε tevilo uporabnikov, ki so trenutno povezani s streΕΎnikom SQL.
      Zabbix: perf_counter["MSSQL$INSPECTION_NAME:SploΕ‘ne statistike uporabniΕ‘kih povezav",30]

  8. MS SQL Server: ključavnice
    Objekt Locks v strežniku Microsoft SQL Server zagotavlja informacije o zaklepih strežnika SQL Server, pridobljenih na posameznih vrstah virov. Na virih strežnika SQL Server, kot so vrstice, ki jih prebere ali spremeni transakcija, se izdajo ključavnice, da se prepreči, da bi več transakcij uporabljalo vire hkrati. Na primer, če transakcija pridobi ekskluzivno (X) zaklepanje v vrstici v tabeli, nobena druga transakcija ne more spremeniti te vrstice, dokler se zaklepanje ne sprosti. Zmanjőanje uporabe ključavnic poveča sočasnost, kar lahko izboljőa sploőno zmogljivost. Hkrati je mogoče slediti več primerkom predmeta Locks, od katerih bo vsak predstavljal zaklepanje druge vrste vira.

    1. Povprečni čakalni čas (ms)
      Povprečni čakalni čas (v milisekundah) za vse zahteve za zaklepanje, ki so zahtevale čakanje. Ta őtevec meri povprečno őtevilo uporabniőkih procesov, ki morajo v čakalno vrsto, da pridobijo zaklepanje vira. Največja dovoljena vrednost tega őtevca je v celoti odvisna od vaőe naloge, tukaj je težko določiti povprečno vrednost za vse aplikacije. Če je ta őtevec previsok, lahko pomeni težave z zaklepi v vaői bazi podatkov.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Locks(_Total)Povprečni čas čakanja (ms)",30] Primer sprožilca: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Locks(_Total)Average Wait Time (ms)",30].last()}>=500, level-info
    2. Čakalni čas zaklepanja (ms)
      Skupni čakalni čas zaklepanja (v milisekundah) v zadnji sekundi.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Locks(_Total)Čakalni čas zaklepanja (ms)",30]
    3. Zaklepanje čaka/sek
      Kolikokrat v zadnji sekundi je morala nit čakati na zahtevo za zaklepanje.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Locks(_Total)Lock Waits/sec",30]
    4. Časovne omejitve zaklepanja/sek
      Število ponovnih poskusov, ko zaklepanja ni mogoče pridobiti s kroženjem. Vrednost konfiguracijskega parametra őtevca vrtenja strežnika SQL Server določa őtevilo "obratov" niti (vrtljajev), preden poteče čas in nit postane nedejavna.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Locks(_Total)Timeouts Lock/sec",30] Primer sproΕΎilca: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Locks(_Total)Locks(_Total)Lock Timeouts/sec",30].last()}>1000, level-info
    5. Zahteve za zaklepanje/sek
      Ε tevilo zahtev na sekundo za podano vrsto zaklepanja.
      Zabbix: perf_counter["MSSQL$INSTANCE_NAME:Locks(_Total)Lock Requests/sec",30] Primer sproΕΎilca: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Locks(_Total)Lock Requests/sec",30].last()}>500000, nivo informacij
    6. Zakleni Ε tevilo zastojev/sek
      Število zahtev za zaklepanje na sekundo, ki povzročijo zastoj. Zastoji označujejo napačno oblikovane poizvedbe, ki blokirajo vire v skupni rabi.
      Zabbix: perf_counter["MSSQL$INSTENTION_NAME:Ε tevilo zastojev/s",30] Primer sproΕΎilca: {NODE_NAME:perf_counter["MSSQL$INSPECTION_NAME:Locks(_Total)Number of Deadlocks/sec",30].last()}>1, level-high

  9. MS SQL Server: Upravitelj pomnilnika
    Objekt Memory Manager v streΕΎniku Microsoft SQL Server nudi Ε‘tevce za spremljanje uporabe pomnilnika v celotnem streΕΎniku. Spremljanje uporabe pomnilnika v celotnem streΕΎniku za oceno dejavnosti uporabnika in uporabe virov lahko pomaga prepoznati ozka grla pri delovanju. Nadzor pomnilnika, ki ga uporablja primerek streΕΎnika SQL Server, lahko pomaga ugotoviti:
    - Ali obstaja pomanjkanje fizičnega pomnilnika za shranjevanje pogosto dostopanih podatkov v predpomnilniku. Če ni dovolj pomnilnika, mora SQL Server pridobiti podatke z diska;
    - Ali bi bilo mogoče izboljőati zmogljivost poizvedbe, če bi dodali več pomnilnika ali če bi bilo na voljo več pomnilnika za predpomnjenje podatkov ali notranjih struktur strežnika SQL Server.

    1. Izjemna plačila za spomin
      Podaja skupno őtevilo procesov, ki so uspeőno pridobili pomnilnik delovnega prostora. Ob stabilnem padcu indikatorja je potrebno povečati RAM.
      Zabbix: perf_counter["MSSQL$INSTENTION_NAME:Upravitelj pomnilnika pomnilnika ne izpolnjuje",30]
    2. Dodelitve pomnilnika v teku
      Označuje skupno őtevilo procesov, ki čakajo na dodelitev delovnega pomnilnika. S stabilno rastjo indikatorja je potrebno povečati RAM.
      Zabbix: perf_counter["MSSQL$InstanceName:Upravitelj pomnilnika Dodeljevanja pomnilnika v teku",30]

  10. MS SQL Server: Statistika
    Objekt Statistics v strežniku Microsoft SQL Server zagotavlja őtevce za spremljanje prevajanja in vrst poizvedb, poslanih v primerek strežnika SQL Server. Spremljanje őtevila kompilacij in ponovnih prevajanj poizvedb ter őtevila paketov, ki jih prejme primerek SQL Server, vam daje idejo o tem, kako hitro SQL Server izvaja uporabniőke poizvedbe in kako učinkovito jih optimizator poizvedb obdela.

    1. Paketne zahteve/sek
      Ε tevilo prejetih paketov ukazov Transact-SQL na sekundo. Na to statistiko vplivajo vse omejitve (V/I, Ε‘tevilo uporabnikov, velikost predpomnilnika, kompleksnost poizvedbe itd.). Veliko Ε‘tevilo zahtevkov za pakete kaΕΎe na visoko prepustnost.
      Zabbix: perf_counter["MSSQL$InstanceName:SQL StatisticsBatch Requests/sec",30]

Poleg vsega naőtetega lahko konfigurirate tudi druge podatkovne elemente (in na njih ustvarite sprožilce z naknadnim obveőčanjem). Na primer:
1) prosti prostor na disku
2) velikosti podatkovnih datotek DB in dnevnika
in t. d.
Vendar pa vsi ti indikatorji ne kažejo težave s poizvedbami v realnem času.
Če želite to narediti, morate ustvariti svoje posebne őtevce.
Zaradi zaupnosti ne bom navajal primerov takih őtevcev. Poleg tega so konfigurirani edinstveno za vsak sistem. Vendar ugotavljam, da je za sisteme, kot so 1C, NAV in CRM, mogoče ustvariti specializirane őtevce skupaj z ustreznimi razvijalci.
Podal bom primer ustvarjanja sploőnega indikatorja, ki prikazuje, koliko zahtev se izvaja in koliko zahtev čaka na izvedbo (zaustavljenih ali blokiranih) v vsakem trenutku.
Če želite to narediti, morate ustvariti shranjeno proceduro:
Koda:

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

Nato morate iti v mapo, kjer se nahaja Zabbix (zabbixconfuserparams.d) in ustvariti 2 datoteki s pripono ps1 (PowerShell) in v vsako od njih napisati naslednje kode:
Koda za tekoče zahteve

$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;

Koda za čakajoče zahteve

$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;

Sedaj morate ustvariti datoteko z uporabniőkimi parametri s pripono .conf (ali dodati vrstice obstoječi uporabniőki datoteki, če je bila ustvarjena prej) in vstaviti naslednje vrstice:
UserParameter=PARAMETER_NAME_NUMBER_of_EXECUTED_QUERY,powershell -NoProfile -ExecutionPolicy Bypass -File FULL_PATHzabbixconfuserparams.dFILE_NAME_FOR_EXECUTED_QUERY.ps1
UserParameter=PARAMETER_NAME_NUMBER_of_PENDING_REQUESTS,powershell -NoProfile -ExecutionPolicy Bypass -File FULL_PATHzabbixconfuserparams.dFILE_NAME_FOR_PENDING_REQUESTS.ps1
Po tem shranimo datoteko .conf in ponovno zaΕΎenemo agenta Zabbix.
Nato Zabbixu dodamo dva nova elementa (v tem primeru sta imena in ključ enaka):
NAME_PARAMETER_NUMBER_PERFORMED_QUERY
NAME_PARAMETER_NUMBER_PENDING_REQUESTS
Zdaj lahko ustvarite grafe in sproΕΎilce za ustvarjene elemente po meri.

Če se őtevilo čakajočih zahtevkov močno poveča, lahko naslednja poizvedba prikaže vse tekoče in čakajoče zahteve v določenem času s podrobnostmi o tem, kje in pod katero prijavo je bila zahteva izvedena, besedilo in načrt poizvedbe ter druge podrobnosti:
Koda:

/*АктивныС, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ запросы, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ явно Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСансы*/
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);

Naj vas spomnim tudi, da lahko glede na zbrane statistike dobite najteΕΎje poizvedbe:
Koda:

/*
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

Lahko piőete tudi za MySQL. Če želite to narediti, morate namestiti mysql-connector-net in potem napiői nekaj takega:
Koda za čakajoče zahteve

#Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ 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;

Rezultat

Ta članek je zajel primer őtevcev uspeőnosti (predmetov) v Zabbixu. Ta pristop vam omogoča, da skrbnike obvestite o različnih težavah v realnem času ali po določenem času. Tako ta pristop omogoča minimiziranje pojava kritične težave v prihodnosti in zaustavitev delovanja DBMS in strežnika, kar posledično őčiti proizvodnjo pred zaustavitvijo delovnih procesov.
PrejΕ‘nji članek: Rutinsko delo z bazo informacijskega sistema 24Γ—7 v MS SQL Server

Vir:

Β» Zabbix 3.4
Β» Ε tevci uspeΕ‘nosti
Β» Performance Center za Azure SQL Database in SQL Server Database Engine
Β» Ε½ivljenjski slog SQL
Β» SQLSkills
Β» Microsoft TechNet
Β» Analiza porabe pomnilnika
Β» Analiza uspeΕ‘nosti
Β» Dokumentacija SQL
Β» Windows Notes

Vir: www.habr.com

Dodaj komentar