Kopīgot tūlīt:

 

Saturs slēpt

1. Ievads SQL Server Profils

1.1 Kas ir SQL Server Profilētājs un kāpēc tas mums ir nepieciešams?

SQL Server Profiler ir grafisks lietotāja interfeisa rīks notikumu uzraudzībai un fiksēšanai, kas notiek SQL ServerŠis jaudīgais diagnostikas rīks ļauj datubāzes administratoriem un izstrādātājiem reāllaikā novērot datubāzes dzinēja darbību, palīdzot noteikt veiktspējas vājās vietas, novērst lietojumprogrammu problēmas un auditēt drošības notikumus.

SQL Server Profils

1.2 SQL Server Profiler 2025. gadā: pašreizējais statuss un alternatīvas

Microsoft novecojis SQL Server Profilētājs, kas sākas ar SQL Server 2016. gadā, iesakot Paplašināti notikumi kā aizstājējtehnoloģiju. Tomēr rīks joprojām ir pieejams pašreizējā versijā SQL Server versijas, tostarp SQL Server 2022. gadā, un to joprojām plaši izmanto datubāzu speciālisti.

1.3 Kam paredzēta šī rokasgrāmata

  • Šī rokasgrāmata ir paredzēta datubāzu administratoriem, kuriem ir jāuzrauga SQL Server instances, diagnosticēt veiktspējas problēmas un nodrošināt sistēmas uzticamību. DAB speciālisti atradīs praktiskus norādījumus par trases fiksēšanu, notikumu analīzi un uzraudzības stratēģiju ieviešanu.
  • Lietojumprogrammu izstrādātājiem ir svarīgi saprast, kā viņu kods mijiedarbojas ar SQL ServerSQL Profiler palīdz izstrādātājiem identificēt neefektīvus vaicājumus, validēt lietojumprogrammu darbību un atkļūdot ar datubāzi saistītas kļūdas.
  • Veiktspējas analītiķi un konsultanti atklās uzlabotas metodes darba slodzes analīzei, jaudas plānošanai un sistēmas optimizācijai. Visaptverošais izsekošanas konfigurācijas, filtrēšanas un analīzes pārskats ļauj veikt rūpīgus datubāzes veiktspējas novērtējumus.

2. Saprašana SQL Server Profilētāja pamati

2.1 Kā SQL Server Profiler Works

SQL Server Profiler darbojas kā klienta lietojumprogramma, kas izveido savienojumu ar SQL izsekošanas dzinēju, kas darbojas iekšā SQL ServerVeidojot izsekošanas datus, datubāzes programma uzrauga norādītos notikumus un tver tos atbilstoši jūsu konfigurācijai. Pareizi konfigurēta izsekošanas programma apkopo notikumu datus, minimāli ietekmējot servera veiktspēju.

Pamatā esošā SQL izsekošanas infrastruktūra visā datubāzes dzinējā izmanto vieglus notikumu āķus. Kad notiek notikums, kas atbilst jūsu izsekošanas definīcijai, dzinējs uztver attiecīgo informāciju un vai nu nosūta to uz Profiler saskarni, vai saglabā failā vai tabulā. Šī arhitektūra nodrošina elastīgu datu vākšanu, nemainot lietojumprogrammas kodu.

2.2 Galvenie jēdzieni un terminoloģija

2.2.1 Notikumi

Notikumi atspoguļo konkrētus notikumus SQL Server ko izsekošanas programma var tvert. Katrs notikums atbilst konkrētai datubāzes darbībai vai sistēmas aktivitātei. SQL Server Profiler organizē notikumus loģiskās kategorijās, lai atvieglotu konfigurēšanu.

Bieži sastopamas notikumu kategorijas ietver TSQL vaicājumu izpildei, saglabātās procedūras procedūru izsaukumiem, bloķējumus vienlaicīguma uzraudzībai un kļūdas un brīdinājumus izņēmumu izsekošanai. Atbilstošu notikumu izvēle nosaka, kādu informāciju jūsu izsekošanas dati uztver, un tieši ietekmē izsekošanas datu lietderību un veiktspējas izmaksas.

Notikumu tipu izpratne palīdz konfigurēt efektīvas izsekošanas. RPC:Completed notikumi uztver attālināto procedūru izsaukumu pabeigšanas, SQL:BatchCompleted notikumi izseko ad-hoc vaicājumu partijas, un Lock:Deadlock notikumi identificē strupceļa gadījumus. Izvēlieties notikumus, kas atbilst jūsu konkrētajiem problēmu novēršanas vai uzraudzības mērķiem.

2.2.2 Datu kolonnas

Datu kolonnas nosaka, kādu informāciju izsekošanas dati tver katram notikumam. Bieži sastopamās kolonnas ietver TextData faktiskajam SQL priekšrakstam, Duration izpildes laikam, CPU procesora noslodzei, Reads loģisko disku lasīšanai un Writes loģisko disku rakstīšanai.

Svarīgākās kolonnas atšķiras atkarībā no lietošanas gadījuma. Veiktspējas problēmu novēršanai parasti ir nepieciešamas kolonnas Duration, CPU, Reads un Writes. Drošības auditam ir nepieciešamas kolonnas LoginName, DatabaseName un ObjectName. Lietojumprogrammu atkļūdošanai ir nepieciešamas kolonnas ApplicationName, SPID un Error.

Atlasot tikai nepieciešamās kolonnas, tiek samazināts izsekošanas apjoms un vienkāršota analīze. Izvairieties no visu pieejamo kolonnu tveršanas, ja vien tas nav īpaši nepieciešams. Katra papildu kolonna palielina apkopoto un apstrādāto datu apjomu, kas var ietekmēt servera veiktspēju.

2.2.3 filtri

Filtri ierobežo, kurus notikumus izsekošanas dati uztver, pamatojoties uz norādītajiem kritērijiem. Pareizi konfigurēti filtri ievērojami samazina izsekošanas datu apjomu, padarot analīzi pārvaldāmu un samazinot ietekmi uz veiktspēju. Filtri novērtē notikumu datus pirms to uztveršanas, novēršot nevajadzīgu datu vākšanu.

Bieži sastopamie filtrēšanas kritēriji ietver DatabaseName, lai koncentrētos uz konkrētām datubāzēm, ApplicationName, lai izolētu konkrētas lietojumprogrammas, Duration, lai uztvertu tikai lēnas darbības, un LoginName, lai izsekotu konkrētus lietotājus. Apvienojot vairākus filtrus, tiek izveidotas precīzas izsekošanas definīcijas, kas uztver tieši to, kas jums nepieciešams.

Filtrēšana, kas vērsta uz veiktspēju, ir būtiska ražošanas vidē. Vienmēr filtrējiet pēc DatabaseName vai ApplicationName, lai izvairītos no sistēmas aktivitātes uztveršanas. Iestatiet minimālos ilguma sliekšņus, lai ignorētu ātri izpildāmus vaicājumus. Izmantojiet TextData filtrus piesardzīgi, jo tiem nepieciešama virkņu salīdzināšana, kas palielina slodzi.

2.2.4 Izsekošanas veidnes

Izsekošanas veidnes nodrošina iepriekš konfigurētas notikumu, kolonnu un filtru atlases bieži sastopamiem scenārijiem. SQL Server Profiler ietver vairākas iebūvētas veidnes, kas kalpo kā sākumpunkti izsekošanas izveidei. Pielāgotas veidnes saglabā jūsu konfigurācijas atkārtotai izmantošanai vairākās izsekošanas sesijās.

Standarta veidne uztver vispārīgu notikumu kopu, kas ir piemērota pamata uzraudzībai. TSQL veidne koncentrējas uz vaicājumu izpildi ar minimālām papildu izmaksām. Pielāgošanas veidne apkopo notikumus tieši Database Engine Tuning Advisor analīzei. Katra veidne līdzsvaro informācijas uztveršanu ar veiktspējas ietekmi.

Pielāgotu veidņu izveide ietaupa laiku un nodrošina konsekvenci visās izsekošanas sesijās. Konfigurējiet izsekošanu ar vēlamajiem notikumiem, kolonnām un filtriem un pēc tam saglabājiet to kā veidni. Pielāgotas veidnes kļūst īpaši vērtīgas, ja atkārtoti novēršat līdzīgas problēmas.

3. Darba sākšana SQL Server Profils

3.1 Sistēmas prasības un priekšnosacījumi

SQL Server Profiler komplektā ietilpst SQL Server Management Studio un atbalsta visus pašlaik uzturētos SQL Server versijas, no SQL Server 2016 uz 2022.

Atļauju prasības nosaka, kas var izveidot un palaist izsekošanas datus. Sistēmas administratora fiksētās servera lomas dalībniekiem ir neierobežota piekļuve SQL Server Profilera funkcionalitāte. Lietotājiem, kas nav sistēmas administratori, atļauja ALTER TRACE piešķir iespēju izveidot un pārvaldīt izsekošanas datus.

Izsekojot attālinātos serverus, jāņem vērā tīkla apsvērumi. Klienta puses izsekošanai ir nepieciešams nepārtraukts tīkla savienojums starp jūsu darbstaciju un SQL Server instance. Pārtraukti savienojumi aptur klienta puses izsekošanu, potenciāli zaudējot uztvertos datus. Servera puses izsekošanas metodes ļauj izvairīties no šī ierobežojuma, pilnībā darbojoties datubāzes serverī.

3.2 Kā palaist SQL Server Profils

3.2.1 Sākot no SQL Server Management Studio (SSMS)

Veiciet šīs darbības, lai palaistu SQL Server Profilētājs no SSMS:

  1. atvērts SQL Server Management Studio un izveidojiet savienojumu ar jebkuru SQL Server piemērs
  2. Noklikšķiniet darbarīki izvēlne augšējā izvēļņu joslā.
  3. Izvēlēties SQL Server Profils no nolaižamās izvēlnes.
  4. The SQL Server Profiler lietojumprogramma tiek palaista jaunā logā.

mājas SQL Server Profilētājs iekšā SQL Server Vadības studija.

3.2.2 Startēšana no Windows izvēlnes Sākt

pieeja SQL Server Profiler tieši no Windows, veicot šīs darbības:

  1. Noklikšķiniet uz Windows mājas poga.
  2. Veids SQL Server Profils meklēšanas lodziņā.
  3. Izvēlēties SQL Server Profils no meklēšanas rezultātiem.
  4. Lietotne tiek palaista bez aktīviem savienojumiem.

mājas SQL Server Profiler no Windows meklēšanas lodziņa.

Varat arī pārvietoties pa izvēlnes Sākt hierarhiju:

  1. Atveriet mājas izvēlne.
  2. Atrodiet microsoft SQL Server darbarīki mapi.
  3. Izvērsiet mapi un noklikšķiniet uz SQL Server Profils.

mājas SQL Server Profiler no Windows sākuma izvēlnes.

3.2.3 Savienojuma izveide ar SQL Server Gadījumos

Pēc palaišanas SQL Server Profiler, izveidojiet savienojumu, veicot tālāk norādītās darbības:

  1. Noklikšķiniet fileja izvēlņu joslā.
  2. Izvēlēties Jauna izsekošana no nolaižamās izvēlnes.
  3. The Savienoties ar serveri parādās dialoglodziņš.
  4. Ievadiet sava servera nosaukumu laukā Servera nosaukums lauks.
  5. izvēlēties Windows autentifikācija or SQL Server Autentifikācija.
  6. Ja lietojat SQL Server Autentifikācija, ievadiet savus pieteikšanās akreditācijas datus.
  7. Noklikšķiniet Meklēt speciālistu lai izveidotu savienojumu.

Izveidojiet savienojumu ar a SQL Server piemēram, SQL Server Profilētājs.

Attālinātiem savienojumiem norādiet pilnu servera nosaukumu, tostarp instances nosaukumu, ja piemērojams. Nosauktajām instancēm izmantojiet formātu SERVERA_NOSAUKUMS\INSTANCES_NOSAUKUMS. Ja savienojuma mēģinājumi neizdodas, pārbaudiet tīkla savienojamību un ugunsmūra iestatījumus.

4. Izveide un konfigurēšana SQL Server Pēdas

4.1 Pirmās kontūras izveide, izmantojot veidni

Izveidojiet savu pirmo pēdu, veicot šīs darbības:

  1. Sākt SQL Server Profilētājs.
  2. Noklikšķiniet fileja -> Jauna izsekošana un izveidojiet savienojumu ar mērķa serveri.
  3. The Trases īpašības parādās dialoglodziņš.
  4. Ievadiet aprakstošu nosaukumu laukā Izsekošanas nosaukums lauks.
  5. Atlasiet veidni no Izmantojiet veidni nomest lejā.
  6. Izvēlieties Standarta (noklusējums) veidne vispārīgai uzraudzībai. Vai cita veidne citiem mērķiem. Veidne nodrošina iepriekš konfigurētus notikumus, kolonnas un filtrus bieži sastopamiem scenārijiem.
  7. Noklikšķiniet skrējiens lai nekavējoties sāktu notikumu fiksēšanu.

Iestatiet izsekošanas īpašības sadaļā SQL Server Profilētājs.

4.2 Pielāgojiet savu kontūru

Bieži vien veidnes neatbilst jūsu prasībām. Šādā gadījumā varat pilnībā pielāgot savu izsekošanas shēmu:

  1. Iekš Trases īpašības dialogs
  2. Izvēlieties Tukšs veidne no Izmantojiet veidni nomest lejā.Izsekošanas veikšanai izmantojiet tukšu veidni.
  3. Noklikšķiniet Notikumu izvēle cilnē tagad varat pielāgot visus notikumus, datu kolonnas un filtrus atbilstoši savām prasībām. Mēs tos apspriedīsim nākamajās sadaļās.
    Pielāgojiet izsekošanas datus dialoglodziņa “Izsekošanas rekvizīti” cilnē “Notikumu atlase”.

4.3 Notikumu atlasīšana tveršanai

Jūs varat atlasīt notikumu sadaļā Notikumu izvēle tab:

  1. Noklikšķiniet + ikonu blakus kategorijai “Notikums”, lai to izvērstu.
  2. Noklikšķiniet uz izvēles rūtiņas blakus notikumam, lai to atlasītu.

Dialoglodziņā “Izsekošanas īpašības” atlasiet notikumu.

4.3.1 Notikumu kategoriju izpratne

SQL Server Profiler organizē notikumus kategorijās loģiskai grupēšanai. Saglabāto procedūru kategorija ietver procedūru izpildes notikumus, tostarp SP:Starting, SP:Completed un SP:StmtCompleted. Šie notikumi izseko saglabāto procedūru izsaukumus un atsevišķu paziņojumu izpildi procedūrās.

TSQL kategorija uztver ad-hoc vaicājumu izpildi ar tādiem notikumiem kā SQL:BatchStarting un SQL:BatchCompleted. Šie notikumi izseko vaicājumus, kas iesniegti tieši SQL Server ārpus saglabātajām procedūrām.

Kategorija “Bloķējumi” uzrauga ar vienlaicīgumu saistītus notikumus, tostarp “Lock:Acquired”, “Lock:Released”, “Lock:Deadlock” un “Lock:Timeout”. Izmantojiet šos notikumus, lai diagnosticētu bloķēšanas un strupceļa problēmas, kas ietekmē lietojumprogrammas veiktspēju.

Kļūdu un brīdinājumu kategorija ietver izņēmumu notikumus, tostarp izņēmumu, uzmanību un lietotāja kļūdas ziņojumu. Šie notikumi palīdz identificēt lietojumprogrammu kļūdas un SQL Server brīdinājumi izsekošanas sesiju laikā.

4.3.2 Pareizo notikumu izvēle jūsu scenārijam

Veiktspējas uzraudzībai ir nepieciešami notikumi, kas fiksē resursu patēriņu. Atlasiet RPC:Completed un SQL:BatchCompleted, lai izsekotu vaicājumu izpildi. Iekļaujiet Duration, CPU, Reads un Writes kolonnas, lai mērītu resursu izmantošanu. Šie notikumi nodrošina pamatu veiktspējas vājo vietu identificēšanai.

Drošības auditam ir nepieciešami notikumi, kas izseko autentifikāciju un autorizāciju. Atlasiet Audita pieteikšanās, Audita atteikšanās, Audita pieteikšanās neizdevās un Objekts:Atvērts, lai uzraudzītu piekļuvi datubāzei. Iekļaujiet kolonnas LoginName, DatabaseName un ObjectName, lai identificētu, kas piekļuva kādiem resursiem.

Kļūdu novēršanas scenāriji gūst labumu no visaptverošas notikumu uztveršanas. Iekļaujiet saglabāto procedūru notikumus, SQL pakešu notikumus un kļūdu notikumus, lai izsekotu pilnīgas izpildes plūsmas. Iegūstiet papildu kontekstu ar SPID, ApplicationName un HostName kolonnām, lai korelētu notikumus ar konkrētām sesijām.

4.4 Datu kolonnu konfigurēšana

Pēc noklusējuma, atlasot notikumu, tiks atlasītas (atzīmētas) visas tā datu kolonnas. Varat noņemt atlasi no nevajadzīgajām kolonnām, lai samazinātu papildu slodzi un vienkāršotu analīzi:

Dialoglodziņā “Izsekošanas īpašības” atlasiet/noņemiet atlasi notikuma datu kolonnām.

Katras izsekošanas būtiskās kolonnas ietver EventClass, lai identificētu notikuma veidu, TextData, lai tvertu faktisko SQL priekšrakstu, LoginName, lai identificētu izpildošo lietotāju, un StartTime, lai atzīmētu notikuma laiku. Šīs kolonnas sniedz pamata kontekstu katram tvertajam notikumam.

Ar veiktspēju saistītās kolonnas mēra resursu patēriņu. Ilgums norāda, cik ilgu laiku notikums aizņēma mikrosekundēs. CPU rāda procesora laiku milisekundēs. Lasīšanas reižu skaits ir loģisko lapu lasīšanas reižu skaits. Rakstīšanas reižu skaits izseko loģisko lapu rakstīšanu. Šie rādītāji identificē resursu ziņā ietilpīgas darbības, kurām nepieciešama optimizācija.

Drošības un audita kolonnas izseko datu piekļuves modeļus. DatabaseName identificē, kurai datubāzei tika piekļūts. ObjectName norāda iesaistīto tabulu vai objektu. ApplicationName atklāj, kura lietojumprogramma uzsāka darbību. Kopā šīs kolonnas nodrošina visaptverošas audita takas.

4.5 Filtru iestatīšana trokšņa samazināšanai

4.5.1 Biežāk sastopamie filtrēšanas kritēriji

Konfigurējiet filtrus, izmantojot šādu pieeju:

  1. Atveriet Trases īpašības dialogs
  2. Noklikšķiniet Notikumu izvēle Tab.
  3. Noklikšķiniet Kolonnu filtri poga apakšējā labajā stūrī.
    Dialoglodziņā “Izsekošanas īpašības” noklikšķiniet uz pogas “Kolonnu filtri”.
  4. Atlasiet kolonnu no saraksta kreisajā pusē.
  5. Konfigurējiet filtra kritērijus labajā pusē esošajā panelī.
    Dialoglodziņā “Izsekošanas īpašības” iestatiet datu kolonnas filtru.
  6. Noklikšķiniet OK lai lietotu filtru.

Lietojumprogrammu nosaukumu filtri izolē darbības no konkrētām lietojumprogrammām. Filtra dialoglodziņā izvērsiet kolonnu Lietojumprogrammas nosaukums un ievadiet lietojumprogrammas nosaukumu. tāpat lauks, un SQL Server Profiler uztver tikai šīs lietojumprogrammas notikumus. Šis filtrs ir nenovērtējams, risinot lietojumprogrammai specifiskas problēmas.

Datu bāzes nosaukumu filtri ierobežo uztveršanu līdz konkrētām datu bāzēm. Filtrējiet pēc DatabaseName, lai izslēgtu sistēmas datu bāzes aktivitātes un koncentrētos uz lietojumprogrammu datu bāzēm. Ievadiet datu bāzu nosaukumus laukā tāpat or vienāds atkarībā no tā, vai ir nepieciešama aizstājējzīmju saskaņošana.

Ilguma filtri uztver tikai lēni darbojošās darbības. Iestatiet minimālo slieksni sadaļā Lielāks par vai vienāds laukā zem kolonnas “Ilgums”. Piemēram, iestatot “Ilgums” >= 1000, tiek uztverti tikai notikumi, kas ilgst vairāk nekā vienu sekundi, filtrējot ātri izpildāmus vaicājumus.

Lietotājvārdu filtri izseko konkrētu lietotāju aktivitātes. Filtrējiet pēc pieteikšanās vārda, lai uzraudzītu konkrētus datubāzes lietotājus. Šī pieeja palīdz identificēt, kuri lietotāji veic problemātiskus vaicājumus vai piekļūst sensitīviem datiem.

4.4.2 Filtrēšanas paraugprakse

Efektīva filtrēšana līdzsvaro datu uztveršanu ar veiktspējas ietekmi. Vienmēr lietojiet vismaz vienu filtru, lai novērstu pārmērīgas sistēmas aktivitātes uztveršanu. Lielākajai daļai izsekošanas datu bāzes nosaukuma un lietojumprogrammas nosaukuma filtriem vajadzētu būt sākumpunktam.

Izvairieties no pārāk plašām izsekošanas metodēm ražošanas vidē. Nefiltrētas izsekošanas metodes uztver milzīgus datu apjomus, kas potenciāli var pasliktināt servera veiktspēju un padarīt analīzi nepraktisku. Iestatiet konkrētus filtrēšanas kritērijus, kas atbilst jūsu problēmu novēršanas mērķiem.

Pirms ieviešanas ražošanas vidē pārbaudiet filtrus. Vispirms veiciet izsekošanu izstrādes vai testēšanas vidēs, lai pārbaudītu, vai filtri uztver paredzētos notikumus bez pārmērīgas pieslodzes. Pielāgojiet filtra kritērijus atkarībā no uztverto datu apjoma.

4.5 Darbs ar izsekošanas veidnēm

4.5.1 Iebūvēto veidņu pārskats

Standarta veidne nodrošina līdzsvarotu notikumu uztveršanu, kas ir piemērota vispārējai uzraudzībai. Tā ietver bieži sastopamus vaicājumu izpildes notikumus, saglabāto procedūru izsaukumus un pamata kļūdu izsekošanu. Izmantojiet šo veidni, ja nepieciešama visaptveroša pārskatāmība, nezinot precīzi, ko meklēt.

TSQL veidne īpaši koncentrējas uz vaicājumu izpildi ar minimālu notikumu atlasi. Tā uztver SQL:BatchCompleted un RPC:Completed notikumus ar būtiskām kolonnām veiktspējas analīzei. Šī veidne piedāvā zemākas izmaksas nekā standarta veidne.

Veidne “Tuning” optimizē notikumu atlasi datubāzes dzinēja Tuning Advisor analīzei. Tā tver notikumus un kolonnas, kas nepieciešamas darba slodzes analīzei un indeksu ieteikumiem. Izmantojiet šo veidni, sagatavojot izsekošanas datus automatizētai veiktspējas regulēšanai.

TSQL_Replay veidnē ir iekļauti visi notikumi un kolonnas, kas nepieciešamas izsekošanas atkārtošanas funkcionalitātei. Tā ietver visaptverošu izpildes informāciju, kas ļauj reproducēt uztvertās darba slodzes testa vidēs. Pateicoties plašajai datu vākšanai, šī veidne ģenerē lielākus izsekošanas failus.

4.5.2 Pielāgotu veidņu izveide

Izveidojiet pielāgotas veidnes, veicot tālāk norādītās darbības.

  1. Noklikšķiniet fileja -> Veidnes -> Jauna veidne…
  2. Ievadiet aprakstošu nosaukumu laukā Jauna veidnes nosaukums lauks.
  3. Pēc izvēles atzīmējiet Veidot jaunu veidni, balstoties uz esošo un atlasiet esošu veidni, ja nevēlaties veidot no nulles:
    Izveidojiet jaunu veidni sadaļā SQL Server Profilētājs.
  4. Noklikšķiniet Notikumu izvēle cilnē pielāgojiet izsekošanas veidni ar vēlamajiem notikumiem, kolonnām un filtriem tieši tāpat kā jūs darīt ar normālu pēdu.
  5. Noklikšķiniet IETAUPI lai saglabātu veidni.

Eksportēt veidnes koplietošanai ar komandas biedriem vai dublēšanas nolūkos:

  1. Noklikšķiniet fileja -> Veidnes -> Eksportēt veidni.
  2. Atlasiet veidni, kuru vēlaties eksportēt.
    Eksportējiet izsekošanas veidni sadaļā SQL Server Profilētājs.
  3. Dodieties uz vēlamo saglabāšanas vietu.
  4. Ievadiet faila nosaukumu un noklikšķiniet uz IETAUPI.
  5. Kopīgojiet *.tdf failu (SQL Server Profilētāja veidnes fails) ar citiem SQL Server Profileru lietotāji.

4.6 Izsekošanas izvades saglabāšana

Pēc noklusējuma, SQL Server Profiler parādīs notikumus izsekošanas logā, bet tos NESAUGŠOS. Jūs varat izvēlēties saglabāt izsekošanas datus failā vai tabulā. Trases īpašības dialoglodziņš, veidojot jaunu izsekošanas informāciju.

4.6.1 Saglabāt failā

  1. Iekš Trases īpašības dialoglodziņš, pārbaude Saglabāt failā.
  2. Noklikšķiniet uz mapes ikonas, lai atvērtu failu pārlūku.
  3. Dodieties uz vēlamo saglabāšanas vietu.
  4. Ievadiet faila nosaukumu ar paplašinājumu .trc.
  5. Noklikšķiniet IETAUPI.
  6. Noteikt Iestatiet maksimālo faila lielumu lai ierobežotu atsevišķu failu lielumu.
  7. dot iespēju Iespējot failu pārnešanu lai izveidotu vairākus failus.
  8. Pēc izvēles iespējojiet Serveris apstrādā izsekošanas datus servera puses izsekošanas datiem.

Dialoglodziņā “Izsekošanas rekvizīti” iestatiet izsekošanas datu saglabāšanu failā.

Faila lieluma pārvaldība novērš diska vietas izsīkšanu. Iestatiet maksimālo faila lielumu uz saprātīgu vērtību, piemēram, 500 MB vai 1 GB, pamatojoties uz pieejamo diska vietu un paredzamo izsekošanas ilgumu. Faila apgriešanas funkcija automātiski izveido jaunus failus, kad tiek sasniegts lieluma ierobežojums, pievienojot faila nosaukumam skaitli.

4.6.2 Saglabāt tabulā

  1. Iekš Trases īpašības dialoglodziņš, pārbaude Saglabāt tabulā.
  2. The Galamērķu tabula parādās dialoglodziņš.
    Atlasiet mērķa tabulu, lai saglabātu izsekošanas datus.
  3. Izvēlieties serveri no saraksta Server nomest lejā.
  4. Izvēlieties datubāzi no Datubāze nomest lejā.
  5. Atlasiet esošu tabulu vai ievadiet jaunu tabulas nosaukumu laukā Tabula lauks.
  6. Noklikšķiniet OK apstiprināt.
  7. Pēc izvēles iestatāms Iestatīt maksimālo rindu skaitu lai ierobežotu tabulas izmēru.

Dialoglodziņā “Izsekošanas rekvizīti” iestatiet izsekošanas datu saglabāšanu tabulā.

Saglabājot tabulās, jāņem vērā veiktspējas apsvērumi. Tabulu glabāšana rada papildu izmaksas salīdzinājumā ar failu glabāšanu, jo SQL Server Izsekošanas dati ir jāraksta, izmantojot krātuves programmu. Izmantojiet tabulu krātuvi, ja jums ir nekavējoties jāveic izsekošanas datu vaicājums, izmantojot T-SQL.

Datu saglabāšana kļūst svarīga tabulās balstītām izsekošanas metodēm. Iestatiet maksimālos rindu ierobežojumus, lai novērstu tabulu pārāk lielu apjomu. Regulāri arhivējiet vai dzēsiet vecos izsekošanas datus, lai saglabātu veiktspēju. Apsveriet lielu izsekošanas tabulu sadalīšanu nodalījumos, lai nodrošinātu labāku pārvaldību.

5. Darbība un pārvaldība SQL Server Pēdas

5.1 Trases sākšana, pauzēšana un apturēšana

Pārvaldiet izsekošanas izpildi, izmantojot rīkjoslas pogas:Pārvaldiet pēdas, izmantojot rīkjoslas pogas sadaļā SQL Server Profilētājs.

  • Zaļā mājas poga sāk reģistrēt notikumus atbilstoši jūsu konfigurācijai.
  • Noklikšķiniet pauze lai īslaicīgi apturētu datu vākšanu, nezaudējot savienojumu.
  • Noklikšķiniet apstāties lai pārtrauktu izsekošanu un aizvērtu savienojumu.

Izmantojot izvēlnes vienumus:
Pārvaldiet pēdas, izmantojot izvēlnes vienumus sadaļā SQL Server Profilētājs.

Ar peles labo pogu noklikšķiniet uz jebkura ieraksta izsekošanas logā:

Pārvaldiet pēdas, izmantojot izvēlnes vienumus ar peles labo pogu noklikšķiniet sadaļā SQL Server Profilētājs.

Izsekošanas dzīves cikla pārvaldība ietekmē servera resursus. Aktīvās izsekošanas patērē atmiņu un apstrādes jaudu proporcionāli uztverto notikumu apjomam. Lai samazinātu papildu slodzi, apturiet izsekošanu periodos, kad uzraudzība nav nepieciešama. Lai atbrīvotu resursus, pilnībā apturiet izsekošanu, kad analīze ir pabeigta.

Klienta puses izsekošanai ir nepieciešams aktīvs Profiler savienojums. SQL Server Profilera logs nekavējoties aptur klienta puses izsekošanas. Lai izsekošanas turpinātos, strādājot citās lietojumprogrammās, minimizējiet Profilera logu, nevis aizveriet to.

5.2 Reāllaika izsekošanas uzraudzība

Uzraugiet tvertos notikumus, kad tie notiek galvenajā izsekošanas logā. Katra rinda apzīmē vienu notikumu, un kolonnās tiek parādītas notikuma īpašības. Režģis nepārtraukti atjauninās aktīvo izsekošanas laikā, pēc noklusējuma apakšā parādot jaunākos notikumus.

Reāllaika izsekošanas monitors SQL Server Profilētājs.

Identificējiet modeļus un problēmas, novērojot notikumu biežumu un raksturlielumus. Ilgstoši notikumi norāda uz veiktspējas problēmām. Bieži kļūdu notikumi liecina par lietojumprogrammu problēmām. Neparasta pieteikšanās aktivitāte var liecināt par drošības problēmām. Reāllaika uzraudzība ļauj nekavējoties reaģēt uz jaunām problēmām.

Ritiniet ierakstītos notikumus, lai pārbaudītu konkrētus gadījumus. Noklikšķiniet uz jebkuras rindas, lai atlasītu notikumu un skatītu tā pilno informāciju. Veiciet dubultklikšķi uz notikumiem, lai atvērtu detalizētus rekvizītu dialoglodziņus, kuros redzamas visas kolonnu vērtības. Izmantojiet ritināšanas bloķēšanas funkciju, lai novērstu automātisku ritināšanu, pārskatot vēsturiskos notikumus.

5.3 Vairāku vienlaicīgu izsekošanas datu pārvaldība

Vairāku izsekošanas datu vienlaicīga palaišana nodrošina elastību sarežģītos uzraudzības scenārijos. Izveidojiet atsevišķus izsekošanas datus dažādiem datubāzes darbības aspektiem, piemēram, vienu izsekošanas datu bāzes veiktspējas uzraudzībai un otru drošības auditam. Katra izsekošanas datu bāze darbojas neatkarīgi ar savu konfigurāciju.

Pārvaldiet vairākas vienlaicīgas izsekošanas SQL Server Profilētājs.

Resursu piešķiršana kļūst kritiski svarīga, palaižot vairākas izsekošanas. Katra aktīvā izsekošana patērē atmiņu, centrālo procesoru un, iespējams, diska ievadizvadi. Ierobežojiet vienlaicīgu izsekošanas darbību skaitu un nodrošiniet, lai katra izsekošana izmantotu atbilstošus filtrus, lai samazinātu papildu slodzi. Uzraugiet servera veiktspēju, palaižot vairākas izsekošanas.

Koordinējiet izsekošanas laiku, lai novērstu pārklāšanos ar augstas slodzes izsekošanas reizēm. Ja iespējams, palaidiet resursu ietilpīgus izsekošanas periodos ar mazu aktivitāti. Ieplānojiet dažādas izsekošanas dažādos laikos, nevis palaidiet visu vienlaicīgi.

5.4 Klienta puses izsekošanas dati salīdzinājumā ar servera puses izsekošanas datiem

Pēc noklusējuma jaunizveidotā izsekošanas informācija ir klienta puses izsekošanas informācija, kurai nepieciešams aktīvs savienojums no SQL Server Profiler uz datubāzes serveri. Izsekošana nekavējoties tiek pārtraukta, ja tiek pārtraukts savienojums vai Profiler tiek aizvērts.

Varat arī izveidot servera puses izsekošanas datus, kas pilnībā darbojas serverī. SQL Server instancei, nepieprasot aktīvu Profiler savienojumu. Servera puses izsekošana turpina darboties pat pēc aizvēršanas SQL Server Profilētājs, ierakstot datus norādītajā faila atrašanās vietā.

Lai izveidotu servera puses izsekošanas informāciju:

  1. Noklikšķiniet uz Fails -> Jauna izsekošanas informācija…
  2. Iekš Trases īpašības dialoglodziņš, pārbaude Saglabāt failā
  3. Iestatiet faila atrašanās vietu un citus iestatījumus.
  4. dot iespēju Serveris apstrādā izsekošanas datus lai izveidotu servera puses izsekošanas informāciju.

Izveidojiet servera puses izsekošanas informāciju SQL Server Profilētājs.

Veiktspējas ietekme ievērojami atšķiras atkarībā no izsekošanas veida. Klienta puses izsekošanas sistēmām dati jāpārraida tīklā uz Profiler saskarni, palielinot latentumu un joslas platuma patēriņu. Servera puses izsekošanas sistēmas rada mazāku slodzi, jo dati tiek ierakstīti tieši servera diskā.

Izmantojiet klienta puses izsekošanas datus ad hoc problēmu novēršanai, ātrām diagnostikas sesijām un situācijām, kurās vērtīga ir tūlītēja vizuāla atgriezeniskā saite. Izvēlieties servera puses izsekošanas datus ražošanas uzraudzībai, ilgstošai datu tveršanai un scenārijiem, kuros nepieciešama neuzraudzīta darbība.

6. Analīze SQL Server Profilētāja dati

6.1 Saglabāto trasējumu atvēršana un pārskatīšana

Ielādējiet saglabātos izsekošanas failus, veicot šīs darbības:

  1. Sākt SQL Server Profilētājs.
  2. Noklikšķiniet fileja -> atvērts -> Izsekošanas fails.
  3. Dodieties uz izsekošanas faila atrašanās vietu.
  4. Atlasiet .trc failu un noklikšķiniet uz atvērts.
  5. Izsekošanas dati tiek ielādēti galvenajā logā.

Ielādējiet izsekošanas tabulas, veicot šo procesu:

  1. Noklikšķiniet fileja -> atvērts -> Izsekošanas tabula.
  2. Izveidojiet savienojumu ar serveri, kurā atrodas izsekošanas tabula.
  3. Atlasiet datubāzi no Datubāze nomest lejā.
  4. Izvēlieties tabulu no Tabula nomest lejā.
  5. Noklikšķiniet OK lai ielādētu datus.

6.2 Izsekošanas datu filtrēšana un meklēšana

6.2.1 Filtrēšana pēc uztveršanas

Lietojiet filtrus ielādētajiem izsekošanas datiem, veicot tālāk norādītās darbības.

  1. Noklikšķiniet rediģēt -> Adrese vai nospiediet Ctrl + F.
  2. Ievadiet meklēšanas tekstu laukā Atrast to, ko lauks.
  3. Atlasiet kolonnu, kurā meklēt Ieskaties nomest lejā.
  4. Noklikšķiniet atrast nākamo lai atrastu atbilstošus notikumus.

Atrast izsekošanas datus SQL Server Profilētājs.

Filtrēšana pēc kolonnām precizē attēlotos datus, neatkārtojot notikumus. Ar peles labo pogu noklikšķiniet uz jebkuras kolonnas galvenes un konteksta izvēlnē atlasiet filtra opcijas. Ievadiet filtra kritērijus, lai tiktu rādītas tikai atbilstošās rindas. Šī pieeja paātrina analīzi, paslēpjot neatbilstošus notikumus.

6.2.2 Konkrētu notikumu atrašana

Meklēšanas funkcionalitāte palīdz atrast konkrētus notikumus lielos izsekošanas failos. Izmantojiet meklēšanas dialoglodziņu, lai meklētu pēc teksta satura, notikuma veida vai kolonnas vērtības. Regulārās izteiksmes nepieciešamības gadījumā iespējo sarežģītus meklēšanas modeļus.

Pievienojiet grāmatzīmēm svarīgus notikumus, lai analīzes laikā varētu tos ātri apskatīt. Ar peles labo pogu noklikšķiniet uz interesantiem notikumiem un atlasiet grāmatzīmju opcijas, lai tos atzīmētu. Pārvietojieties starp grāmatzīmēm, izmantojot īsinājumtaustiņus vai izvēlnes komandas, tādējādi atvieglojot saistītu notikumu salīdzināšanu.

6.3 Notikumu grupēšana un apkopošana

Grupējiet notikumus pēc kolonnu vērtībām, lai identificētu modeļus un apkopotu aktivitātes. Ar peles labo pogu noklikšķiniet uz jebkuras kolonnas galvenes un atlasiet Grupēt pēc šīs kolonnas lai organizētu notikumus. Grupēti skati sakļauj līdzīgus notikumus kopā, tādējādi atvieglojot kopējo modeļu saskatīšanu.

Apkopotie skati sniedz izsekošanas datu statistiskus kopsavilkumus. Grupējiet pēc teksta datiem, lai redzētu, cik reižu katrs vaicājums tika izpildīts. Grupējiet pēc lietotāja vārda, lai skatītu katra lietotāja aktivitāšu kopsavilkumus. Apkopojums atklāj modeļus, kas nav uzreiz acīmredzami detalizētos notikumu sarakstos.

Izvērsiet un sakļaujiet grupas, lai detalizēti aplūkotu konkrētas kategorijas. Noklikšķiniet uz plusa un mīnusa ikonām blakus grupu galvenēm, lai parādītu vai paslēptu grupētus notikumus. Šis hierarhiskais skats atvieglo analīzi no augšas uz leju, sākot ar augsta līmeņa modeļiem un iedziļinoties detaļās.

6.4 SQL vaicājumu iegūšana no trasēm

Izgūstiet vaicājumus no izsekošanas datiem, veicot tālāk norādītās darbības.

  1. Atrodiet interesējošo vaicājumu izsekošanas režģī.
  2. Noklikšķiniet uz rindas, lai atlasītu notikumu.
  3. Skatiet pilnu vaicājuma tekstu apakšējā panelī.
  4. prese Ctrl + , lai atlasītu visu vaicājuma tekstu.
  5. prese Ctrl + C lai kopētu vaicājuma tekstu.
  6. Ielīmējiet vaicājumu Management Studio, lai veiktu turpmāku analīzi.

Izvilkt SQL vaicājumu no izsekošanas notikuma.

Identificējiet problemātiskos vaicājumus, kārtojot pēc veiktspējas kolonnām. Noklikšķiniet uz kolonnas “Ilgums” galvenes, lai kārtotu pēc izpildes laika. Lēnākie vaicājumi tiek parādīti augšpusē vai apakšā atkarībā no kārtošanas virziena. Līdzīgi kārtojiet pēc centrālā procesora, lasīšanas vai rakstīšanas, lai identificētu resursietilpīgas darbības.

Eksportēt vaicājumus testēšanai, kopējot tos no izsekošanas zonas uz vaicājumu logiem. Modificēt iegūtos vaicājumus, lai pārbaudītu optimizācijas stratēģijas. Salīdzināt izpildes plānus un veiktspējas rādītājus starp sākotnējām un optimizētajām versijām.

6.5 Korelējošie notikumi un izpildes plūsmas izpratne

Vecāku-bērnu notikumu attiecības parāda izpildes hierarhijas. SQL:BatchStarting notikumi ir SQL:StmtStarting vecāknotikumi, kas savukārt ir procedūru izpildes notikumu vecāki. Šo attiecību izpratne palīdz izsekot pilnīgus izpildes ceļus visā kodā.

Darījumu izsekošana savieno saistītus notikumus laika gaitā. Izmantojiet SPID kolonnu, lai grupētu notikumus pēc sesijas. Sesijas ietvaros notikumi notiek hronoloģiskā secībā, parādot darbību secību. Šajā skatā ir parādīts, kā dažādas darbības mijiedarbojas darījumu ietvaros.

Korelējiet notikumus, pārbaudot koplietotās kolonnu vērtības. Notikumi ar identisku SPID notika vienā sesijā. Notikumi ar vienādu ApplicationName nāca no vienas un tās pašas lietojumprogrammas. Izmantojiet šīs korelācijas, lai izprastu sarežģītus izpildes scenārijus.

7. Kopējā SQL Server Profilētāja lietošanas gadījumi

7.1 Veiktspējas problēmu novēršana

7.1.1 Lēnu vaicājumu identificēšana

Lēnu vaicājumu uztveršana, izmantojot šādu konfigurāciju:

  1. Izveidojiet jaunu izsekošanas informāciju, izmantojot TSQL veidne.
  2. Iekš Notikumu izvēle cilne, pārbaudiet SQL:BatchCompleted un RPC: Pabeigts ir atlasīti.
  3. Noklikšķiniet Kolonnu filtri.
  4. Izvēlēties ilgums no kolonnu saraksta.
  5. Ievadiet 1000000 laukā. Lielāks par vai vienāds lauks, lai reģistrētu vaicājumus, kas aizņem vairāk nekā 1 sekundi.
  6. Noklikšķiniet OK un sāciet izsekošanu.
  7. Palaidiet izsekošanu maksimālās noslodzes periodos.
  8. Apturiet izsekošanu un kārtojiet pēc ilguma, lai identificētu vislēnākos vaicājumus.

Ilguma analīze atklāj izpildes laika modeļus. Kārtojiet uztvertos notikumus pēc Ilguma kolonnas, lai vispirms redzētu visilgāk darbojošās darbības. Pārbaudiet šo notikumu TextData kolonnu, lai noteiktu faktiskos vaicājumus, kas ir atbildīgi par aizkavēm.

CPU un I/O ietilpīgiem vaicājumiem ir nepieciešamas dažādas optimizācijas pieejas. Kārtojiet pēc CPU kolonnas, lai atrastu ar procesoru saistītus vaicājumus, kuriem nepieciešami algoritmiski uzlabojumi. Kārtojiet pēc lasīšanas vai rakstīšanas kolonnām, lai identificētu ar ievadi/izvadi saistītus vaicājumus, kuriem būtu nepieciešama indeksēšana vai vaicājumu pārrakstīšana.

7.1.2 Bloķēšanas un strupceļa noteikšana

Konfigurējiet bloķēšanas noteikšanu, veicot tālāk norādītās darbības.

  1. Izveidojiet jaunu izsekošanas shēmu.
  2. Iekš Notikumu izvēle cilne, izvērst Slēdzenes.
  3. Izvēlēties Bloķēt: Strupceļš un Slēdzene: strupceļa ķēde.
  4. paplašināt Kļūdas un brīdinājumi.
  5. Izvēlēties Bloķēta procesa ziņojums.
  6. Iekļaut kolonnas: SPID, Teksta dati, Datubāzes nosaukums, Pieteikšanās vārds.
  7. Sāciet izsekošanu un uzraugiet bloķēšanas notikumus.

Bloķēšanas notikumu uzraudzība atklāj vienlaicības problēmas, kas ietekmē lietojumprogrammas veiktspēju. Bloķēšanas: strupceļa notikumi norāda, kad SQL Server atklātas un atrisinātas strupceļa situācijas. Bloķēšanas:Strupceļa ķēdes notikumi parāda strupceļos iesaistītos procesus.

Strupceļa grafiki sniedz vizuālus strupceļa scenāriju attēlojumus. Kad notiek strupceļa notikums, TextData kolonnā ir XML, kas apraksta strupceļu. Kopējiet šo XML un atveriet to programmā SQL Server Management Studio, lai skatītu grafisko strupceļa diagrammu, kurā parādīts, kuri procesi bloķēja viens otru.

7.1.3 Trūkstošo indeksu atrašana

Apkopojiet darba slodzi indeksu analīzei, veicot šīs darbības:

  1. Izveidojiet jaunu izsekošanas informāciju, izmantojot Tuning veidne.
  2. Konfigurējiet izsekošanas informāciju, lai tā tiktu saglabāta failā.
  3. Palaidiet izsekošanu reprezentatīvos darba slodzes periodos.
  4. Savāciet vismaz vairākas stundas aktivitāšu.
  5. Apturiet izsekošanu un saglabājiet failu.
  6. Palaidiet datubāzes dzinēja regulēšanas padomnieku.
  7. Atlasiet izsekošanas failu kā darba slodzes avotu.
  8. Veiciet analīzi, lai saņemtu indeksēšanas ieteikumus.

Integrācija ar Database Engine Tuning Advisor automatizē indeksu ieteikšanu. Tuning Advisor analizē uztverto darba slodzi un iesaka indeksus, kas uzlabotu veiktspēju. Pirms ieviešanas rūpīgi pārskatiet ieteikumus, ņemot vērā krātuves pieskaitāmās izmaksas un uzturēšanas izmaksas.

7.2 Lietojumprogrammas problēmu novēršana

7.2.1 Lietojumprogrammu kļūdu atkļūdošana

Izsekošanas lietojumprogrammas kļūdas, izmantojot šo konfigurāciju:

  1. Izveidojiet jaunu izsekošanas shēmu.
  2. paplašināt Kļūdas un brīdinājumi cilnē “Notikumu atlase”.
  3. Izvēlēties Izņēmums, Lietotāja kļūdas ziņojums, un Uzmanību.
  4. Iekļaut kolonnas: kļūda, Teksta dati, Lietojumprogrammas nosaukums, SPID.
  5. Atlasīt pēc Lietojumprogrammas nosaukums lai koncentrētos uz savu pieteikumu.
  6. Sāciet izsekošanu un reproducējiet kļūdas scenāriju.
  7. Pārskatiet fiksētos kļūdu notikumus, lai iegūtu diagnostikas informāciju.

Kļūdu izsekošana atklāj izņēmumu informāciju, kas bieži vien ir paslēpta no lietojumprogrammām. Kļūdu kolonnā ir ietverta informācija. SQL Server kļūdu numuri. Kolonnā “TextData” tiek rādīti kļūdu ziņojumi un vaicājums, kas izraisīja kļūdu. Kolonnā “Nopietnība” ir norādīti kļūdu nopietnības līmeņi.

Izņēmumu uzraudzība fiksē izpildlaika problēmas, tostarp ierobežojumu pārkāpumus, atļauju kļūdas un taimauta notikumus. Korelējiet kļūdu notikumus ar iepriekšējiem vaicājuma notikumiem, lai saprastu, kas izraisīja izņēmumus.

7.2.2 Lietojumprogrammu un datubāzes saziņas izsekošana

Uzraugiet lietojumprogrammu darbību, veicot tālāk norādītās darbības.

  1. Izveidojiet jaunu izsekošanas informāciju, izmantojot Standarta veidne.
  2. Noklikšķiniet Kolonnu filtri.
  3. Izvēlēties Lietojumprogrammas nosaukums un ievadiet savas lietojumprogrammas nosaukumu laukā tāpat lauks.
  4. Pēc izvēles filtrēt pēc HostName lai izolētu konkrētus serverus.
  5. Sāciet izsekošanu lietojumprogrammas darbību laikā.
  6. Pārskatiet tvertos notikumus, lai redzētu visas datubāzes mijiedarbības.

Lietojumprogrammu nosaukumu filtrēšana izolē vaicājumus no konkrētām lietojumprogrammām. SQL Server iestata lietojumprogrammas nosaukumu no savienojuma virknēm, tādējādi atvieglojot atsevišķu lietojumprogrammu izsekošanu vairāku lietojumprogrammu vidēs. Pārliecinieties, vai savienojuma virknē ir iekļauts parametrs “Lietojumprogrammas nosaukums”, lai nodrošinātu efektīvu filtrēšanu.

Savienojuma izsekošana parāda sesijas dzīves ciklu, tostarp pieteikšanās, vaicājuma izpildes un atteikšanās notikumus. Uzrauga savienojumu izveides ātrumu, lai identificētu savienojumu apvienošanas problēmas. Pārmērīga savienojumu aizplūšana norāda uz iespējamām lietojumprogrammu konfigurācijas problēmām.

7.2.3 Lietojumprogrammas darbības validēšana

Izmantojot izsekošanas analīzi, pārbaudiet paredzēto lietojumprogrammas darbību. Reģistrējiet visas datubāzes darbības biznesa darījuma laikā un pārbaudiet, vai pareizie vaicājumi tiek izpildīti pareizā secībā. Salīdziniet faktiski reģistrētos vaicājumus ar paredzēto darbību, lai identificētu neatbilstības.

Parametru validācija nodrošina, ka lietojumprogrammas nodod pareizas vērtības saglabātajām procedūrām un parametrizētajiem vaicājumiem. Pārbaudiet uztverto vaicājuma tekstu, lai pārliecinātos, ka parametru vērtības atbilst gaidītajam. Nepareizi parametri bieži rada loģikas kļūdas, kas izpaužas kā nepareizi biznesa rezultāti.

7.3 Drošības audits

7.3.1 Pieteikšanās mēģinājumu uzraudzība

Konfigurējiet pieteikšanās uzraudzību, veicot šīs darbības:

  1. Izveidojiet jaunu izsekošanas shēmu.
  2. paplašināt drošības audits cilnē “Notikumu atlase”.
  3. Izvēlēties Audita pieteikšanās, Izrakstīties no audita, un Audita pieteikšanās neizdevās.
  4. Iekļaut kolonnas: Pieteikšanās vārds, HostName, Lietojumprogrammas nosaukums, Sākuma laiks.
  5. Sāciet izsekošanu, lai uzraudzītu autentifikācijas darbības.
  6. Pārskatiet neizdevušās pieteikšanās notikumus, lai noteiktu iespējamās drošības problēmas.

Veiksmīgas un neveiksmīgas pieteikšanās nodrošina visaptverošu autentifikācijas izsekošanu. Audita pieteikšanās notikumi reģistrē veiksmīgus autentifikācijas mēģinājumus ar lietotāja identitāti un avota informāciju. Audita pieteikšanās neizdevušās pieteikšanās notikumi norāda uz neveiksmīgiem pieteikšanās mēģinājumiem, kas var liecināt par uzbrukumiem vai konfigurācijas problēmām.

Autentifikācijas izsekošana atklāj modeļus datubāzes piekļuvē. Uzraugiet pieteikšanās biežumu, lai atklātu neparastu aktivitāti. Vairāki neveiksmīgi pieteikšanās mēģinājumi, kam seko veiksmīga pieteikšanās, var liecināt par kompromitētiem akreditācijas datiem. Neveiksmīgas pieteikšanās no negaidītām vietām ir attaisnojama izmeklēšana.

7.3.2 Datu piekļuves un modifikāciju izsekošana

Uzraudzīt piekļuvi datiem, izmantojot šo konfigurāciju:

  1. Izveidojiet jaunu izsekošanas shēmu.
  2. paplašināt drošības audits.
  3. Izvēlēties Audita datubāzes objektu piekļuve.
  4. Iekļaut kolonnas: Objekta nosaukums, Pieteikšanās vārds, Teksta dati, Datubāzes nosaukums.
  5. Atlasīt pēc Objekta nosaukums lai uzraudzītu konkrētas sensitīvas tabulas.
  6. Sāciet izsekošanu, lai reģistrētu piekļuves mēģinājumus.

SELECT, INSERT, UPDATE, DELETE izsekošana nodrošina visaptverošu datu modifikāciju auditu. SQL:BatchCompleted notikumu tveršana ar atbilstošiem filtriem, lai uzraudzītu visas datu piekļuves darbības. Filtrēšana pēc ObjectName vai TextData, lai koncentrētos uz sensitīvām tabulām.

Piekļuve sensitīviem datiem prasa rūpīgu uzraudzību, lai nodrošinātu atbilstību drošības politikām. Izveidojiet izsekošanas datus tieši tabulām, kas satur personas informāciju, finanšu datus vai citu konfidenciālu informāciju. Regulāri pārskatiet piekļuves modeļus, lai identificētu neatbilstošu piekļuvi datiem.

7.3.3 Neatļautu darbību identificēšana

Nosakiet aizdomīgas darbības, analizējot vaicājumu modeļus tvertajās trasēs. Meklējiet neparastus vaicājumus, kas neatbilst parastajai lietojumprogrammas darbībai. SELECT paziņojumi bez WHERE klauzulas, kas izgūst veselas tabulas, var norādīt uz datu eksfiltrācijas mēģinājumiem.

Privilēģiju eskalācijas mēģinājumi parādās kā atļauju kļūdas vai mēģinājumi izpildīt administratora komandas. Uzraugiet vaicājumus, kas mēģina piekļūt sistēmas tabulām, modificēt servera konfigurāciju vai izveidot privilēģētus kontus. Filtrējiet kļūdu notikumus un pārskatiet TextData kolonnu, lai atrastu aizdomīgas darbības.

7.4 Jaudas plānošana un darba slodzes analīze

Nosakiet bāzes līnijas, fiksējot reprezentatīvu darba slodzi normālas darbības laikā. Veiciet izsekošanas datus tipiskā darba laikā, lai izprastu standarta aktivitāšu modeļus. Saglabājiet šos izsekošanas datus kā veiktspējas bāzes līnijas turpmākai salīdzināšanai.

Maksimālās noslodzes identificēšana atklāj, kad jūsu sistēma ir pilnībā noslogota. Reģistrējiet izsekošanas datus dažādos laika periodos, tostarp darba laikā, partijas apstrādes logos un aktivitātēs ārpus darba laika. Analizējiet notikumu skaitu un resursu patēriņu, lai noteiktu maksimālās slodzes periodus.

Resursu izmantošanas modeļi izriet no darba slodzes analīzes. Grupējiet notikumus pēc laika intervāliem, lai redzētu aktivitāšu sadalījumu visas dienas garumā. Aprēķiniet kopējos centrālā procesora, diska ievades/izvades un ilguma rādītājus, lai kvantitatīvi noteiktu resursu patēriņu. Izmantojiet šos datus, lai plānotu jaudas uzlabojumus vai noteiktu optimizācijas iespējas.

8. Advanced SQL Server Profilēšanas metodes

8.1 Servera puses trasējumu izveide, izmantojot T-SQL

8.1.1 Sp_trace_create un saistīto procedūru izmantošana

Izveidojiet servera puses izsekošanas datus programmatiski, izmantojot T-SQL saglabātās procedūras. Šī pieeja nodrošina automatizētu izsekošanas datu izveidi un pārvaldību, neprasot SQL Server Profilera grafiskais interfeiss.

Definējiet servera puses izsekošanas informāciju, izmantojot šo koda piemēru:

  1. Deklarēt mainīgos izsekošanas ID un faila ceļam.
  2. Izsauciet sp_trace_create, lai izveidotu jaunu izsekošanas informāciju.
  3. Izmantojiet sp_trace_setevent, lai pievienotu notikumus un kolonnas.
  4. Filtru konfigurēšanai varat izmantot arī sp_trace_setfilter.
  5. Lai sāktu izsekošanu, izsauciet funkciju sp_trace_setstatus.

Procedūra sp_trace_create inicializē jaunu izsekošanas definīciju. Norādiet izvades faila ceļu, maksimālo faila lielumu un apgāšanās opcijas. Procedūra atgriež izsekošanas ID, kas tiek izmantots turpmākajos procedūru izsaukumos, lai konfigurētu izsekošanu.

Pievienojiet notikumus, izmantojot procedūru sp_trace_setevent. Norādiet izsekošanas ID, notikuma ID un kolonnas ID katrai notikuma-kolonnas kombinācijai, kuru vēlaties tvert. Izsauciet šo procedūru vairākas reizes, lai izveidotu pilnīgas izsekošanas konfigurācijas.

Konfigurējiet filtrus ar procedūru sp_trace_setfilter. Norādiet izsekošanas ID, kolonnas ID, loģisko operatoru, salīdzināšanas operatoru un filtra vērtību. Vairāki filtra izsaukumi apvienojas, lai izveidotu sarežģītus filtra kritērijus.

Sāciet izsekošanu, izsaucot funkciju sp_trace_setstatus ar statusa vērtību 1. Apturiet izsekošanu, izsaucot to pašu procedūru ar statusa vērtību 0. Dzēsiet izsekošanas definīcijas, izsaucot funkciju ar statusa vērtību 2.

8.1.2 Servera puses izsekošanas priekšrocības

Samazinātas klienta pieslēgvietas padara servera puses izsekošanu ideāli piemērotu ražošanas uzraudzībai. Datu bāzes serveris apstrādā visas izsekošanas darbības, nepatērējot klienta datora resursus. Tīkla joslas platums netiek patērēts, pārsūtot notikumus uz klienta lietojumprogrammu.

Automatizēta izpilde nodrošina neuzraudzītu izsekošanas datu apkopošanu. Servera puses izsekošanas dati turpina darboties pēc izveides, pat ja nav klienta savienojuma. Ieplānojiet izsekošanas datu izveidi, izmantojot SQL Server Aģenta darbi automatizētai uzraudzībai.

Mazāka veiktspējas ietekme rodas servera puses apstrādes dēļ. Notikumi tiek ierakstīti tieši diskā bez papildu serializācijas vai tīkla pārraides. Bufera pārvaldība optimizē diska ievadi/izvadi, lai uzlabotu kopējo veiktspēju.

8.2 Izsekošanas atkārtošanas funkcionalitāte

8.2.1 Trašu iegūšana atskaņošanai

Izveidojiet atskaņošanai gatavas pēdas, veicot tālāk norādītās darbības.

  1. Izveidojiet jaunu izsekošanas informāciju, izmantojot TSQL_Atkārtošana veidne.
  2. Pārliecinieties, vai ir atlasīti visi nepieciešamie notikumi un kolonnas.
  3. Konfigurējiet izsekošanas informāciju, lai tā tiktu saglabāta failā.
  4. Palaidiet izsekošanu darba slodzes periodā, kuru vēlaties tvert.
  5. Apturiet izsekošanu un saglabājiet failu.

Nepieciešamie notikumi un kolonnas nodrošina pilnīgu izsekošanas atkārtošanu. TSQL_Replay veidne ietver visus nepieciešamos notikumu veidus un datu kolonnas. Trūkstoši obligātie elementi neļauj veiksmīgi atskaņot datus, tāpēc vienmēr izmantojiet šo veidni, veicot tveršanu atkārtošanas nolūkos.

8.2.2 Trases atskaņošana

Atkārtoti atskaņojiet uztvertās darba slodzes, veicot šīs darbības:

  1. In SQL Server Profilētājs, noklikšķiniet fileja -> atvērts -> Izsekošanas fails.
  2. Atlasiet atskaņošanai gatavu izsekošanas failu.
  3. Noklikšķiniet Atkārtojums -> mājas.
  4. Izveidojiet savienojumu ar mērķa serveri atkārtošanas dialoglodziņā.
  5. Konfigurējiet atkārtošanas opcijas, tostarp atkārtošanas secību un laiku.
  6. Noklikšķiniet OK lai sāktu atskaņošanu.
  7. Uzraugiet atkārtošanas progresu statusa logā.

Atkārtošanas konfigurācijas opcijas kontrolē, kā SQL Server Profilētājs reproducē uztverto darba slodzi. Atkārtojiet notikumus to uztveršanas secībā, lai saglabātu laika attiecības. Konfigurējiet, vai saglabāt sākotnējo laiku vai atkārtot notikumus pēc iespējas ātrāk.

8.2.3 Lietošanas gadījumi izsekošanas atkārtošanai

Slodzes testēšana gūst labumu no izsekošanas atkārtošanas, reproducējot reālistiskas darba slodzes. Uztveriet ražošanas darba slodzes izsekošanas un atkārtojiet tās testēšanas sistēmās, lai pārbaudītu veiktspēju reālos lietošanas modeļos. Pielāgojiet vienlaicības iestatījumus, lai simulētu dažādus slodzes līmeņus.

Vides migrācijas validācija nodrošina, ka jaunās sistēmas var apstrādāt esošās darba slodzes. Reģistrējiet izsekošanas datus no pašreizējām ražošanas sistēmām un atskaņojiet tos jaunā aparatūrā vai atjauninātā formātā. SQL Server versijas. Salīdziniet veiktspējas rādītājus, lai pārliecinātos, ka migrācijas nemazinās veiktspēju.

Testēšanas scenāriji ietver regresijas testēšanu pēc koda izmaiņām, optimizētāja izmaiņu validēšanu visā SQL Server versijas un aparatūras konfigurāciju stresa testēšanu. Replay nodrošina konsekventas, atkārtojamas darba slodzes uzticamai testēšanai.

8.3 SQL Profiler integrēšana ar Database Engine Tuning Advisor

Izveidojiet darba slodzes failus Database Engine Tuning Advisor, tverot izsekošanas datus ar atbilstošiem notikumiem. Izmantojiet Tuning veidni, lai nodrošinātu, ka visa nepieciešamā informācija tiek tverta analīzei.

Palaidiet Database Engine Tuning Advisor un atlasiet izsekošanas failu kā darba slodzes avotu. Advisor analizē tvertos vaicājumus un iesaka indeksus, indeksētus skatus vai sadalīšanas stratēģijas, kas uzlabotu veiktspēju.

Veiktspējas optimizācijas darbplūsma integrē izsekošanas datu uztveršanu ar optimizācijas analīzi. Apkopojiet reprezentatīvas darba slodzes normālas darbības laikā, analizējiet ar optimizācijas konsultantu, pārskatiet ieteikumus, pārbaudiet ieteiktās izmaiņas izstrādes procesā un visbeidzot ieviesiet apstiprinātās izmaiņas ražošanas procesā.

8.4 Izsekošanas datu apkopošanas automatizācija

Plānot izsekošanas, izmantojot SQL Server Aģenta uzdevumi datu automātiskai apkopošanai. Izveidojiet T-SQL skriptus, kas definē servera puses izsekošanas datus, izmantojot sp_trace procedūras. Ieplānojiet šo skriptu izpildi noteiktā laikā vai intervālos.

PowerShell automatizācija nodrošina sarežģītus izsekošanas pārvaldības scenārijus. Rakstiet PowerShell skriptus, kas izveido izsekošanas, uzrauga to statusu un apstrādā apkopotos datus. Ieplānojiet PowerShell skriptus, izmantojot uzdevumu plānotāju vai SQL Server Aģents.

SQL Server Aģenta darbi nodrošina uzticamu plānoto izpildi. Izveidojiet darbus, kas sāk izsekošanu uzraudzības periodu sākumā un aptur izsekošanu pēc datu vākšanas pabeigšanas. Konfigurējiet darbu paziņojumus, lai brīdinātu administratorus par kļūmēm.

8.5 Izsekojumu programmatiska analīze

Izlasiet izsekošanas failus ar T-SQL, izmantojot funkciju fn_trace_gettable. Šī tabulas vērtību funkcija analizē izsekošanas failus un atgriež notikumu datus kā rezultātu kopu. Veiciet vaicājumu par šiem datiem, izmantojot standarta T-SQL, lai veiktu pielāgotu analīzi.

Pielāgoti analīzes skripti nodrošina automatizētu izsekošanas apstrādi. Rakstiet vaicājumus, kas aprēķina apkopoto statistiku, identificē modeļus vai atzīmē anomālijas. Ieplānojiet šo skriptu automātisku palaišanu pēc izsekošanas datu apkopošanas pabeigšanas.

Ģenerējiet atskaites, vaicājot tabulās saglabātos izsekošanas datus. Izveidojiet skatus, kas apkopo notikumus pēc laika perioda, lietotāja vai lietojumprogrammas. Veidojiet atskaišu risinājumus, kas sniedz regulāru ieskatu datubāzes darbībā un veiktspējā.

9. SQL Server Profilētāja labākā prakse

9.1 Veiktspējas paraugprakse

9.1.1 Izsekošanas papildu izmaksu samazināšana līdz minimumam

Atlasiet tikai nepieciešamos notikumus, lai samazinātu izsekošanas papildu slodzi. Katrs papildu notikuma veids palielina datu apjomu, kas izsekošanas programmai jāapstrādā. Pārskatiet savus uzraudzības mērķus un iekļaujiet tikai notikumus, kas ir tieši saistīti ar šiem mērķiem.

Izmantojiet filtrus efektīvi, lai novērstu neatbilstošu datu uztveršanu. Filtrējiet pēc DatabaseName, lai izslēgtu sistēmas datubāzes. Filtrējiet pēc Duration, lai uztvertu tikai lēnus vaicājumus. Filtrējiet pēc ApplicationName, lai koncentrētos uz konkrētām lietojumprogrammām. Pareiza filtrēšana ievērojami samazina izsekošanas izmaksas.

Servera puses un klienta puses apsvērumi ietekmē veiktspējas ietekmi. Servera puses izsekošanas dati tiek ierakstīti tieši diskā ar minimālu pieskaitāmo slodzi. Klienta puses izsekošanas dati pārraida notikumus tīklā uz Profiler saskarni, palielinot latentumu un joslas platuma patēriņu. Izmantojiet servera puses izsekošanas datus ražošanas uzraudzībai.

9.1.2 Trases glabāšanas optimizācija

Failu lieluma pārvaldība novērš diska vietas izsīkšanu. Iestatiet maksimālos failu lieluma ierobežojumus atbilstoši pieejamajai krātuvei. Iespējojiet failu apgrozījumu, lai izveidotu vairākus failus, nevis bezgalīgi palielinātu vienu failu. Uzraugiet diska vietu izsekošanas izpildes laikā.

Tabulu un failu glabāšana ietver dažādus veiktspējas kompromisus. Failu glabāšana piedāvā labāku veiktspēju izsekošanas izpildes laikā, jo tā apiet glabāšanas programmu. Tabulu glabāšana ļauj veikt T-SQL vaicājumus pret izsekošanas datiem, bet palielina rakstīšanas izmaksas. Izvēlieties glabāšanas veidu, pamatojoties uz savām analīzes prasībām.

9.2 Drošības paraugprakse

Atļauju pārvaldība kontrolē, kas var izveidot un palaist izsekošanas iespējas. Piešķiriet ALTER TRACE atļauju tikai uzticamiem lietotājiem, kuriem nepieciešamas izsekošanas iespējas. Sistēmas administratora lomas dalībniekiem ir neierobežota piekļuve izsekošanai. Regulāri pārskatiet un auditējiet izsekošanas atļaujas.

Sensitīvu datu aizsardzībai nepieciešama rūpīga izsekošanas konfigurācija. Strādājot ar sensitīviem datiem, izvairieties no pilna vaicājuma teksta tveršanas. Apsveriet iespēju filtrēt vai šifrēt izsekošanas izvadi, kas satur konfidenciālu informāciju. Glabājiet izsekošanas failus drošās vietās ar atbilstošām piekļuves kontrolēm.

Izsekošanas failu drošība novērš nesankcionētu piekļuvi tvertajiem datiem. Iestatiet failu atļaujas, lai ierobežotu piekļuvi izsekošanas failiem. Šifrējiet izsekošanas failus, ja tie satur sensitīvu informāciju. Izdzēsiet izsekošanas failus pēc analīzes pabeigšanas, lai samazinātu informācijas atklāšanas risku.

9.3 Ražošanas vides apsvērumi

9.3.1 Kad izmantot Profiler ražošanas vidē

Riska novērtējums nosaka, kad SQL Server Profiler ir piemērots lietošanai ražošanas vidē. Profiler ievieš izmērāmus papildu izdevumus, kas palielinās līdz ar izsekošanas tvērumu. Pirms ražošanas izsekošanas palaišanas novērtējiet, vai diagnostikas vērtība attaisno ietekmi uz veiktspēju.

Minimāla ietekme uz konfigurācijām nodrošina drošāku ražošanas izsekošanu. Izmantojiet ļoti selektīvus filtrus, lai tvertu tikai kritiskus notikumus. Iestatiet ilguma sliekšņus, lai ignorētu ātri izpildāmus vaicājumus. Ierobežojiet izsekošanas ilgumu līdz īsiem periodiem problēmu novēršanas sesiju laikā. Konfigurējiet servera puses izsekošanu, lai samazinātu klienta pieslēgvietas.

9.3.2 Ražošanas uzraudzības alternatīvas

Paplašinātie notikumi nodrošina zemākas izmaksas ražošanas uzraudzībai. Šī modernā tehnoloģija piedāvā labāku veiktspēju un elastību nekā citi. SQL Server Profilētājs. Migrējiet uzraudzības risinājumus uz paplašinātiem notikumiem ilgtermiņa ražošanas lietošanai.

Vaicājumu krātuve automātiski uztver vaicājumu veiktspējas datus bez manuālas izsekošanas konfigurācijas. Iespējojiet vaicājumu krātuvi ražošanas datubāzēs, lai laika gaitā izsekotu vaicājumu izpildes statistiku. Vaicājumu krātuve nodrošina lielāko daļu veiktspējas uzraudzības iespēju bez izsekošanas papildu izmaksām.

Dinamiskās pārvaldības skati piedāvā vienkāršu uzraudzību konkrētiem scenārijiem. DMV sniedz informāciju par pašreizējo stāvokli, neuztverot vēsturiskus notikumus. Periodiski veiciet DMV vaicājumus, lai uzraudzītu servera stāvokli, neradot nepārtrauktas izsekošanas izmaksas.

9.4 Izsekošanas pārvaldības labākā prakse

Nosaukšanas konvencijas nodrošina izsekošanas failu identificējamību un organizēšanu. Izsekošanas failu nosaukumos iekļaujiet datumu, laiku, servera nosaukumu un mērķi. Visiem izsekošanas failiem izmantojiet konsekventus nosaukumu veidošanas modeļus, lai atvieglotu pārvaldību un analīzi.

Dokumentācijā tiek reģistrēta izsekošanas konfigurācija un mērķis. Dokumentējiet, kādus notikumus esat fiksējis, kāpēc izveidojāt izsekošanu un ko esat uzzinājis no analīzes. Atbilstības un problēmu novēršanas nolūkos uzturiet izsekošanas žurnālu, kas veikts ražošanas sistēmās.

Saglabāšanas politikas novērš pārmērīgu izsekošanas failu uzkrāšanos. Definējiet, cik ilgi izsekošanas faili jāglabā, pamatojoties uz biznesa prasībām un krātuves ietilpību. Automatizējiet veco izsekošanas failu dzēšanu, lai atbrīvotu vietu diskā. Pirms dzēšanas arhivējiet svarīgus izsekošanas failus ilgtermiņa krātuvē.

9.5 izplatītas kļūdas, no kurām jāizvairās

Pārmērīga izsekošana rada pārmērīgas veiktspējas izmaksas un ģenerē nepārvaldāmus datu apjomus. Izvairieties no visu notikumu tveršanas bez filtriem. Sāciet ar šaurām, fokusētām izsekošanām un paplašiniet darbības jomu tikai nepieciešamības gadījumā. Vairāk datu ne vienmēr ir labāks risinājums efektīvai problēmu novēršanai.

Aizmirstot apturēt izsekošanas, tiek tērēti resursi un aizpildīta vieta diskā. Vienmēr apturiet izsekošanas, kad uzraudzība ir pabeigta. Iestatiet izsekošanas ilguma ierobežojumus vai maksimālo failu lielumu, lai novērstu nekontrolējamas izsekošanas. Regulāri uzraugiet darbojošos izsekošanas un apturiet neaktīvas vai nevajadzīgas izsekošanas.

Filtru optimizācijas ignorēšana noved pie sliktas veiktspējas un sarežģītas analīzes. Pirms izsekošanas sākšanas veltiet laiku efektīvu filtru konfigurēšanai. Pārbaudiet filtrus izstrādes vidēs, lai pārliecinātos, ka tie uztver paredzētos datus. Pārskatiet un precizējiet filtrus, pamatojoties uz uztvertajiem rezultātiem.

10. Alternatīvas SQL Server Profilētājs 2025. gadā

10.1 Paplašinātie notikumi: mūsdienu aizstāšana

10.1.1 Kas ir paplašinātie notikumi?

Paplašinātie notikumi pārstāv SQL Servermodernā notikumu apstrādes arhitektūra. Microsoft izstrādāja šo sistēmu, lai to īpaši risinātu SQL Server Profilera ierobežojumi, tostarp veiktspējas izmaksas un konfigurācijas elastība. Paplašinātie notikumi nodrošina visaptverošas uzraudzības iespējas ar ievērojami zemāku resursu patēriņu.

Arhitektūra un priekšrocības atšķir paplašinātos notikumus no vecākām izsekošanas tehnoloģijām. Notikumu dzinējs dziļi integrējas SQL Serverpamata arhitektūra, kas uztver notikumus ar minimālām papildu izmaksām. Asinhronā notikumu buferizācija novērš uzraudzības radīto datubāzes darbību bloķēšanu. Elastīgas mērķauditorijas atlases opcijas nodrošina dažādas izvades konfigurācijas.

Veiktspējas priekšrocības padara paplašinātos notikumus ideāli piemērotus ražošanas uzraudzībai. Salīdzinošie testi liecina, ka paplašinātie notikumi rada par 50–90 % mazākas papildu izmaksas nekā līdzvērtīgi risinājumi. SQL Server Profilētāja izsekošanas dati. Arhitektūra labāk mērogojama ar lielu notikumu apjomu un atbalsta vairāk vienlaicīgu uzraudzības sesiju.

10.1.2 Migrēšana no Profiler uz paplašinātajiem notikumiem

Notikumu kartēšana tiek tulkota SQL Server Profilera notikumu ekvivalenti paplašinātiem notikumiem. Lielākajai daļai Profilera notikumu ir atbilstoši paplašināto notikumu ekvivalenti. Microsoft nodrošina dokumentāciju, kurā kartēti bieži sastopamie notikumi abās sistēmās.

Sesijas izveidei paplašinātajos notikumos (Extended Events) ir jāapgūst jauna sintakse un jēdzieni. Definējiet notikumu sesijas, izmantojot T-SQL CREATE EVENT SESSION priekšrakstus vai paplašināto notikumu grafisko saskarni lietojumprogrammā Management Studio. Sesijas norāda, kurus notikumus tvert, kādus datus apkopot un kur saglabāt rezultātus.

10.1.3 Paplašinātie notikumu rīki un saskarnes

SSMS paplašināto notikumu lietotāja interfeiss nodrošina grafisku sesiju pārvaldību. Piekļūstiet paplašinātajiem notikumiem, izmantojot objektu pārlūka pārvaldības mapi. Izveidojiet, modificējiet un uzraugiet notikumu sesijas, izmantojot saskarni. Skatiet uzņemtos datus grafiskos formātos, tostarp režģos un diagrammās.

T-SQL sesiju pārvaldība nodrošina programmatisku paplašinātu notikumu kontroli. Lai kodā definētu sesijas, ierakstiet CREATE EVENT SESSION priekšrakstus. Lai modificētu darbojošās sesijas, izmantojiet ALTER EVENT SESSION. Sesiju atmešanai izmantojiet DROP EVENT SESSION. Šī pieeja atvieglo automatizētus uzraudzības risinājumus.

10.2 SQL Server Vaicājumu veikals

Vaicājumu krātuve automātiski tver vaicājumu veiktspējas datus datubāzēm, kurās tā ir iespējota. Šī funkcija laika gaitā izseko vaicājumu plānus, izpildes statistiku un veiktspējas rādītājus bez manuālas izsekošanas konfigurācijas. Vaicājumu krātuve uztur vēsturiskos datus, kas ļauj veikt tendenču analīzi un regresijas noteikšanu.

Vaicājumu veiktspējas uzraudzība reāllaikā, izmantojot vaicājumu krātuvi, atklāj pašreizējo sistēmas darbību. Skatiet nesen izpildītos vaicājumus, to izpildes plānus un resursu patēriņu. Identificējiet vaicājumus ar pieaugošu ilgumu vai mainīgiem izpildes plāniem, kas var liecināt par problēmām.

Vēsturiskā vaicājumu analīze nodrošina salīdzināšanu dažādos laika periodos. Vaicājumu krātuve saglabā veiktspējas datus konfigurējamus saglabāšanas periodus. Salīdziniet pašreizējo veiktspēju ar vēsturiskajām bāzes līnijām, lai noteiktu regresijas. Analizējiet veiktspējas tendences, lai prognozētu turpmākās jaudas vajadzības.

Izmantojiet vaicājumu krātuvi, ja nepieciešama automātiska, vienmēr ieslēgta veiktspējas uzraudzība. Iespējojiet vaicājumu krātuvi ražošanas datubāzēs, lai nepārtraukti izsekotu vaicājumu darbību. Vaicājumu krātuve papildina uz izsekošanu balstītu problēmu novēršanu, sniedzot vēsturisku kontekstu veiktspējas problēmām.

10.3 Dinamiskās pārvaldības skati (DMV)

Viegli uzraugāma informācija, izmantojot DMV, sniedz aktuālo stāvokli, neuztverot vēsturiskus notikumus. DMV atklāj iekšējos datus. SQL Server statistiku un metadatus, izmantojot vaicājumus veicošus skatus. Vaicājiet DMV, izmantojot standarta T-SQL SELECT instrukcijas.

Bieži sastopamie DMV vaicājumi veiktspējas uzraudzībai ietver sys.dm_exec_query_stats vaicājumu veiktspējas statistikai, sys.dm_exec_requests pašlaik izpildāmajiem pieprasījumiem un sys.dm_os_wait_stats gaidīšanas statistikai. Šie skati sniedz ieskatu servera veselības stāvoklī un aktivitātēs konkrētā laika punktā.

DMV papildina uz izsekošanu balstītu uzraudzību, nodrošinot reāllaika rādītājus. Izmantojiet DMV ātrām stāvokļa pārbaudēm un pašreizējā stāvokļa analīzei. Apvienojiet DMV vaicājumus ar izsekošanas datiem, lai iegūtu visaptverošas problēmu novēršanas pieejas.

10.4 Trešo pušu uzraudzības rīki

Komerciālas alternatīvas piedāvā uzlabotas uzraudzības iespējas, kas pārsniedz SQL Serveriebūvētie rīki. Tādu pārdevēju kā SolarWinds, Redgate un Quest produkti nodrošina visaptverošas uzraudzības, brīdināšanas un analīzes funkcijas. Šie rīki bieži vien apvieno vairākus datu avotus, tostarp izsekošanas datus, DMV un veiktspējas skaitītājus.

Funkciju salīdzinājums atklāj dažādu uzraudzības pieeju stiprās puses. Trešo pušu rīki nodrošina izcilas lietotāja saskarnes, automatizētu brīdināšanu un vēsturisko tendenču uzskaiti. SQL Serveriebūvētie rīki nepiedāvā papildu izmaksas un dziļāku integrāciju. Novērtējiet rīkus, pamatojoties uz savām īpašajām prasībām un budžetu.

10.5 Pareizā rīka izvēle atbilstoši jūsu vajadzībām

Lēmumu matrica palīdz izvēlēties atbilstošus uzraudzības rīkus. Ad hoc problēmu novēršanai SQL Server Profiler joprojām ir pieejams un efektīvs. Ražošanas uzraudzībai labāku veiktspēju nodrošina paplašinātie notikumi vai vaicājumu krātuve. Visaptverošai uzņēmuma uzraudzībai trešo pušu risinājumi piedāvā visvairāk funkciju.

Rīku izvēles kritēriji ietver veiktspējas izmaksas, lietošanas vienkāršību, datu saglabāšanas prasības un budžeta ierobežojumus. Izvēloties rīkus, ņemiet vērā savas komandas pieredzi. Pazīstami rīki nodrošina ātrāku problēmu novēršanu pat tad, ja jaunākas alternatīvas piedāvā labākas funkcijas.

Apvienojiet vairākus rīkus visaptverošām uzraudzības stratēģijām. Izmantojiet vaicājumu krātuvi nepārtrauktai veiktspējas izsekošanai, paplašinātos notikumus konkrētu problēmu izmeklēšanai un datu plūsmas vizualizācijas rīkus (DMV) reāllaika stāvokļa pārbaudēm. Šī daudzslāņainā pieeja nodrošina stabilu uzraudzību bez pārmērīgām papildu izmaksām.

11. Traucējummeklēšana SQL Server Profilētāja problēmas

11.1 Bieži sastopamas savienojuma problēmas

Autentifikācijas kļūmes novērš SQL Server Profileram ir aizliegts izveidot savienojumu ar mērķa serveriem. Pārliecinieties, vai izvēlētajai autentifikācijas metodei izmantojat pareizos akreditācijas datus. Windows autentifikācijai ir nepieciešams, lai jūsu Windows kontam būtu atbilstoši dati. SQL Server atļaujas. SQL Server Autentifikācijai nepieciešami derīgi SQL pieteikšanās akreditācijas dati.

Tīkla savienojamības problēmas izpaužas kā taimauta kļūdas vai savienojuma kļūmes. SQL Server konfigurācijā ir atļauti attālie savienojumi. Pārbaudiet, vai ugunsmūra iestatījumi atļauj datplūsmu. SQL Server's ports. Pirms Profiler problēmu novēršanas pārbaudiet pamata savienojamību, izmantojot ping un telnet.

11.2 Profiler veiktspējas problēmas

Lēna izsekošanas izpilde norāda uz pārmērīgu izsekošanas konfigurācijas slodzi. Pārskatiet atlasītos notikumus un noņemiet nevajadzīgos. Pievienojiet filtrus, lai samazinātu uztverto notikumu apjomu. Apsveriet servera puses izsekošanas izmantošanu, lai samazinātu klienta puses apstrādes slodzi.

Augsts resursu patēriņš ietekmē abus SQL Server un Profiler klientu. Uzraugiet servera centrālo procesoru un atmiņu izsekošanas izpildes laikā. Ja servera resursi ir ierobežoti, palieliniet filtra selektivitāti vai samaziniet uztveršanas ilgumu. Klienta resursu problēmu gadījumā ir jāaizver citas lietojumprogrammas vai jājaunina klienta aparatūra.

11.3 Izsekošanas failu un tabulu problēmas

Bojāti izsekošanas faili neļauj atvērt SQL Server Profilētājs. Bojājumi parasti rodas nepienācīgas izsekošanas pārtraukšanas vai diska kļūdu dēļ. Mēģiniet atvērt failu teksta redaktorā, lai pārliecinātos, ka tas nav pilnībā bojāts. Dažreiz daļējus datus var atgūt, importējot tos tabulā, izmantojot fn_trace_gettable.

Problēmas ar piekļuvi tabulai rodas, mēģinot ielādēt izsekošanas datus no SQL Server tabulas. Pārliecinieties, vai jums ir SELECT atļauja izsekošanas tabulai. Pārbaudiet, vai tabula nav izdzēsta vai pārdēvēta. Pārliecinieties, vai izveidojat savienojumu ar pareizo serveri un datubāzi, kurā atrodas izsekošanas tabula.

11.4 Trūkstoši notikumi vai nepilnīgi dati

Nepareiza filtra konfigurācija izraisa to, ka izsekošanas datos netiek iekļauti paredzētie notikumi. Rūpīgi pārskatiet filtra kritērijus, lai pārliecinātos, ka tie neizslēdz vēlamos notikumus. Pārbaudiet filtrus, palaižot īsas izsekošanas datnes un pārbaudot, vai iegūtie dati atbilst gaidītajam. Uz laiku noņemiet filtrus, lai noteiktu, vai tie rada problēmu.

Bufera pārpilde rodas, ja SQL Server nevar pietiekami ātri ierakstīt izsekošanas datus, lai neatpaliktu notikuma ģenerēšanas procesā. Tas parasti notiek ar nefiltrētām izsekošanas darbībām augstas aktivitātes laikā. Simptomi ir trūkstoši notikumi vai brīdinājumi “Notikumi netika uztverti”. Novērsiet problēmu, pievienojot filtrus, lai samazinātu notikumu apjomu, vai palielinot izsekošanas faila atrašanās vietas diska I/O veiktspēju.

11.5 Profilera avārijas un kļūdas

Bieži sastopamie kļūdu ziņojumi ir “Nevar izveidot izsekošanas informāciju”, kas norāda uz atļauju problēmām vai resursu ierobežojumiem. Ziņojumi “Izsekošana tika apturēta” norāda uz servera puses izsekošanas kļūmēm, iespējams, pilna diska dēļ. Kļūdas “Nederīga izsekošanas definīcija” norāda uz konfigurācijas problēmām.

Risināšanas stratēģijas ir atkarīgas no konkrētās kļūdas. Atļauju kļūdu gadījumā lietotājam ir jāpiešķir atļauja ALTER TRACE. Resursu kļūdu gadījumā ir jāatbrīvo vieta diskā vai atmiņa. Konfigurācijas kļūdu gadījumā ir jāpārskata un jālabo izsekošanas iestatījumi. Restartējiet. SQL Server Profiler, ja tas pārstāj reaģēt.

12. Praktiski SQL Server Profilētāja scenāriji un piemēri

12.1 1. scenārijs: vislēnāko vaicājumu identificēšana jūsu datubāzē

Šajā pamācībā ir parādīta lēnu vaicājumu uztveršana un analīze.

Konfigurējiet izsekošanas informāciju, veicot tālāk norādītās darbības.

  1. Sākt SQL Server Profiler un izveidojiet savienojumu ar mērķa serveri.
  2. Noklikšķiniet fileja -> Jauna izsekošana.
  3. Ievadiet “Lēna vaicājumu analīze” Izsekošanas nosaukums lauks.
  4. Izvēlēties TSQL no Izmantojiet veidni nomest lejā.
  5. Noklikšķiniet Notikumu izvēle Tab.
  6. Noklikšķiniet Kolonnu filtri.
  7. Izvēlēties ilgums un ievadiet 1000000 Lielāks par vai vienāds.
  8. Izvēlēties Datubāzes nosaukums un ievadiet savas datubāzes nosaukumu tāpat.
  9. Noklikšķiniet OK lai aizvērtu filtrus.
  10. dot iespēju Saglabāt failā un norādiet faila ceļu.
  11. Noklikšķiniet skrējiens lai sāktu tveršanu.

Veiciet izsekošanu darba maksimālās slodzes laikā vismaz 30 minūtes, lai iegūtu reprezentatīvu darba slodzi. Apturiet izsekošanu pēc pietiekamas datu savākšanas.

Analizējiet rezultātus pēc šīs procedūras:

  1. Noklikšķiniet ilgums kolonnas galvene, lai kārtotu pēc izpildes laika.
  2. Nosakiet 10 visilgāk darbojošos vaicājumus.
  3. Katram vaicājumam pārbaudiet Teksta dati kolonna.
  4. Kopējiet vaicājuma tekstu un ielīmējiet to Management Studio programmā.
  5. lietošana Parādīt paredzamo izpildes plānu lai analizētu vaicājumu.
  6. Meklējiet tabulu skenēšanas, trūkstošus indeksus vai neefektīvus savienojumus.
  7. Pārskats CPU, Lasa, un Raksta kolonnas resursu patēriņa modeļiem.

12.2 2. scenārijs: strupceļa problēmas novēršana

Šajā piemērā parādīts, kā fiksēt un analizēt strupceļus.

Konfigurējiet strupceļa uzraudzību, veicot šīs darbības:

  1. Izveidojiet jaunu izsekošanas metodi ar nosaukumu “Strupceļa izmeklēšana”.
  2. Noklikšķiniet Notikumu izvēle Tab.
  3. Noklikšķiniet Rādīt visus notikumus.
  4. paplašināt Slēdzenes kategorija.
  5. Izvēlēties Bloķēt: Strupceļš.
  6. Izvēlēties Slēdzene: strupceļa ķēde.
  7. paplašināt Kļūdas un brīdinājumi kategorija.
  8. Izvēlēties Bloķēta procesa ziņojums.
  9. Nodrošināt Teksta dati kolonna ir atlasīta.
  10. Noklikšķiniet skrējiens lai sāktu uzraudzību.

Ja izsekošanas izpildes laikā rodas strupceļš, izsekošanas režģī parādās notikums Lock:Deadlock.

Interpretējiet informāciju par strupceļu, veicot tālāk norādītās darbības.

  1. Noklikšķiniet Bloķēt: Strupceļš notikuma rinda.
  2. Skatīt Teksta dati kolonna apakšējā panelī.
  3. Kopējiet XML saturu no TextData.
  4. Atveriet Management Studio un izveidojiet jaunu vaicājuma logu.
  5. Ielīmējiet XML vaicājuma logā.
  6. Saglabājiet failu ar paplašinājumu .xdl.
  7. Atveriet .xdl failu programmā Management Studio, lai skatītu strupceļa grafiku.
  8. Grafikā ir parādīti iesaistītie procesi, bloķētie resursi un izvēlētais upuris.
  9. Lai izprastu konfliktu, pārskatiet abu procesu vaicājumus.

Risināšanas darbības parasti ietver darbību pārkārtošanu lietojumprogrammas kodā, lai piekļūtu resursiem konsekventā secībā, transakciju tvēruma samazināšanu vai atbilstošu bloķēšanas padomu ieviešanu.

12.3 3. scenārijs: visu vaicājumu izsekošana no konkrētas lietojumprogrammas

Šajā scenārijā ir parādīta lietojumprogrammai specifiska vaicājumu uzraudzība.

Konfigurējiet lietojumprogrammai specifisku izsekošanu, veicot tālāk norādītās darbības.

  1. Izveidojiet jaunu izsekošanas ierakstu ar nosaukumu “Lietojumprogrammas vaicājumu izsekošana”.
  2. Izvēlieties Standarta veidne.
  3. Noklikšķiniet Notikumu izvēle Tab.
  4. Noklikšķiniet Kolonnu filtri.
  5. Izvēlēties Lietojumprogrammas nosaukums.
  6. Ievadiet savas lietojumprogrammas nosaukumu laukā tāpat lauks.
  7. Ja jūsu lietojumprogramma izmanto savienojumu apvienošanu, iespējams, būs nepieciešama aizstājējzīmju salīdzināšana.
  8. Noklikšķiniet OK lai lietotu filtru.
  9. dot iespēju Saglabāt tabulā lai atvieglotu vaicājumu veikšanu.
  10. Noklikšķiniet skrējiens lai sāktu tveršanu.

Vaicājumu modeļu analīze atklāj, kā jūsu lietojumprogramma mijiedarbojas ar SQL Server:

  1. Pēc datu apkopošanas pārtrauciet izsekošanu.
  2. Atveriet Management Studio un izveidojiet savienojumu ar serveri, izmantojot izsekošanas tabulu.
  3. Veiciet vaicājumu izsekošanas tabulā, lai analizētu modeļus.
  4. Saskaitiet vaicājumus pēc veida, lai redzētu darbību sajaukumu.
  5. Nosakiet visbiežāk izpildītos vaicājumus.
  6. Meklējiet vaicājumus, kurus varētu saglabāt kešatmiņā vai optimizēt.
  7. Pārbaudiet atkārtotus identiskus vaicājumus, kas norāda uz trūkstošu savienojumu apvienošanu.

12.4 4. scenārijs: Datu piekļuves audits atbilstības nodrošināšanai

Šajā piemērā ir parādīta drošības audita ieraksta izveide.

Konfigurējiet drošības auditu, veicot tālāk norādītās darbības.

  1. Izveidojiet jaunu izsekošanas ierakstu ar nosaukumu “Drošības audita ieraksts”.
  2. Noklikšķiniet Notikumu izvēle Tab.
  3. Noklikšķiniet Rādīt visus notikumus.
  4. paplašināt drošības audits kategorija.
  5. Izvēlēties Audita pieteikšanās, Izrakstīties no audita, Audita pieteikšanās neizdevās.
  6. Izvēlēties Audita datubāzes objektu piekļuve.
  7. paplašināt TSQL kategorija.
  8. Izvēlēties SQL:BatchCompleted.
  9. Noklikšķiniet Kolonnu filtri.
  10. Atlasīt pēc Objekta nosaukums lai uzraudzītu konkrētas sensitīvas tabulas.
  11. dot iespēju Saglabāt tabulā ilgtermiņa saglabāšanai.
  12. Iespējojiet servera puses izsekošanu neuzraudzītai darbībai.
  13. Noklikšķiniet skrējiens lai sāktu auditu.

Ģenerējiet audita atskaites, vaicājot izsekošanas tabulu:

  1. Izveidojiet vaicājumus, kuros apkopota piekļuve pēc lietotāja un laika perioda.
  2. Identificējiet neparastus piekļuves modeļus vai aktivitātes ārpus darba laika.
  3. Dokumenta pieteikšanās neizdevās drošības pārskatīšanai.
  4. Eksportēt audita datus uz pārskatu sistēmām atbilstības dokumentēšanai.
  5. Arhivēt pabeigtās audita pēdas saskaņā ar saglabāšanas politikām.

12.5 5. scenārijs: darba slodzes noteikšana veiktspējas testēšanai

Šajā scenārijā tiek demonstrēta darba slodzes uztveršana testēšanas nolūkos.

Izveidojiet atskaņošanai gatavas pēdas, veicot šīs darbības:

  1. Izveidojiet jaunu izsekošanas ierakstu ar nosaukumu “Darba slodzes uztveršana”.
  2. Izvēlēties TSQL_Atkārtošana no veidnes nolaižamās izvēlnes.
  3. Šajā veidnē ir iekļauti visi nepieciešamie notikumi un kolonnas atkārtošanai.
  4. Noklikšķiniet Notikumu izvēle Tab.
  5. Lietojiet filtrus, ja vēlaties tvert konkrētus darba slodzes segmentus.
  6. dot iespēju Saglabāt failā.
  7. Norādiet faila ceļu ar pietiekamu diska vietu.
  8. Iestatiet atbilstošus failu lieluma ierobežojumus un iespējojiet pārnešanu.
  9. Noklikšķiniet skrējiens lai sāktu tveršanu.

Reģistrējiet reprezentatīvu biznesa darbību laikā. Lai iegūtu visaptverošu darba slodzes reģistrāciju, vairākas stundas veiciet izsekošanu, aptverot dažādus darbību modeļus. Apturiet izsekošanu pēc pietiekamu datu savākšanas.

Darba slodzes analīze atklāj sistēmas uzvedības modeļus:

  1. Atveriet uztverto izsekošanas failu sadaļā SQL Server Profilētājs.
  2. Pārskatiet notikumu sadalījumu pēc veida un laika.
  3. Aprēķiniet kopējo resursu patēriņa rādītājus.
  4. Nosakiet maksimālās aktivitātes periodus un resursu sastrēgumus.
  5. Izmantojiet izsekošanas datus Database Engine Tuning Advisor analīzei.
  6. Atkārtoti atskaņojiet izsekošanas datus testa sistēmās, lai validētu izmaiņas.

13. Datu bāzes bojājumu noteikšana ar SQL Server Profils

13.1 Izmantojot SQL Server Profiler agrīnām korupcijas brīdinājuma pazīmēm

Datu bāzes bojājumi ir viens no nopietnākajiem draudiem datu integritātei un sistēmas uzticamībai. Lai gan SQL Server Profiler nav specializēts korupcijas atklāšanas rīks, tas var uztvert kritiskas brīdinājuma zīmes, kas norāda uz potenciālām korupcijas problēmām, kurām nepieciešama tūlītēja izmeklēšana.

13.2 Kritisku kļūdu notikumi, kas norāda uz iespējamu korupciju

  • 24. nopietnības kļūdas (823, 824, 825): aparatūras un datu nesēja kļūmes.
  • Kļūda 605: Neveiksmīgi lapas izgūšanas mēģinājumi
  • Kļūda 8928 un 8929: Objekta bojājums

13.3 Aizdomīgu datu bāzes uzvedība un brīdinājumu modeļi

  • Atkārtoti vaicājumu taimauti konkrētiem objektiem
  • Piekļuves pārkāpumi un lietojumprogrammu avārijas
  • Neparasta kļūdu klasterizācija

13.4. DBCC CHECKDB palaišana, pamatojoties uz profilētāja atradumiem

If SQL Server Profilētājs atrod aizdomīgus bojājumus, varat izmantot DBCC CHECKDB, lai veiktu pilnīgu datubāzes pārbaudi. Pēc tam, ja bojājumi tiek apstiprināti, veiciet labošanu. Mēs esam rakstījuši visaptverošs ceļvedis, kā veikt šos uzdevumus.

Ja DBCC CHECKDB neizdodas salabot datubāzi, bojājumi ir nopietni. Šādā gadījumā varat ķerties pie trešās puses SQL atkopšanas rīks.

14. Bieži uzdotie jautājumi

J: Ir SQL Server Profilētājs joprojām tiek atbalstīts SQL Server 2022?

A: Jā, SQL Server Profiler joprojām ir iekļauts SQL Server 2022 un SQL Server Management Studio, neskatoties uz to, ka tā ir novecojusi kopš tā laika SQL Server 2016. gads. Microsoft turpina piegādāt rīku ar pašreizējām versijām, taču iesaka migrēt uz paplašinātajiem notikumiem jaunām uzraudzības ieviešanas versijām. Rīks joprojām funkcionē un tiek plaši izmantots problēmu novēršanai un ad-hoc analīzei.

J: Kāda ir atšķirība starp SQL Server Profilētājs un SQL izsekošana?

A: SQL Server Profiler ir grafiskā lietotāja saskarnes rīks, kas izveido savienojumu ar SQL izsekošanas dzinēju, kas darbojas iekšā SQL ServerSQL Trace ir pamatā esošā tehnoloģija, kas faktiski uztver notikumus. Traces var izveidot, izmantojot Profiler saskarni vai tieši caur T-SQL saglabātajām procedūrām, piemēram, sp_trace_create. Profiler nodrošina vienkāršāku konfigurēšanu, savukārt T-SQL traces piedāvā vairāk automatizācijas iespēju.

J: Cik lielas izmaksas rada veiktspējas izmaksas? SQL Server Vai profilētāju pievienot?

A: Veiktspējas ietekme ir atkarīga no izsekošanas konfigurācijas. Labi filtrēts izsekošanas veids, kas fiksē tikai konkrētus notikumus, var palielināt slodzi par 1–5 %. Slikti konfigurēts izsekošanas veids bez filtriem var palielināt slodzi par 20–50 % vai vairāk, īpaši noslogotās sistēmās. Servera puses izsekošanas datiem ir mazāka ietekme nekā klienta puses izsekošanas datiem. Vienmēr izmantojiet filtrus, lai samazinātu notikumu apjomu, un vispirms pārbaudiet izsekošanas datus vidēs, kas nav ražošanas vidē.

J: Vai es varu skriet? SQL Server Profilētājs ražošanas serveros?

A: Jūs varat skriet SQL Server Izmantojiet profilētāju ražošanas serveros, taču ievērojiet piesardzību. Izmantojiet ļoti selektīvus filtrus, ierobežojiet izsekošanas ilgumu un dodiet priekšroku servera puses izsekošanai, lai samazinātu ietekmi. Ja iespējams, palaidiet ražošanas izsekošanu zemas aktivitātes periodos. Nepārtrauktai ražošanas uzraudzībai apsveriet paplašinātus notikumus vai vaicājumu krātuvi, jo tie piedāvā mazāku pieskaitāmo slodzi.

J: Kādas atļaujas man ir jāizmanto? SQL Server Profilētājs?

A: Lai izveidotu un palaistu izsekošanas datus, ir nepieciešama ALTER TRACE atļauja. Sistēmas administratora fiksētā servera lomas dalībniekiem šī atļauja ir automātiski. Lietotājiem, kas nav sistēmas administratori, ir skaidri jāpiešķir ALTER TRACE atļauja. Turklāt, pamatojoties uz jūsu konfigurāciju, ir nepieciešamas atbilstošas ​​atļaujas, lai saglabātu izsekošanas datus failos vai tabulās.

J: Kāpēc es nevaru redzēt visus notikumus savā izsekošanas datos?

A: Trūkstošie notikumi parasti rodas pārāk ierobežojošu filtru vai bufera pārpildes dēļ. Pārskatiet filtra konfigurāciju, lai pārliecinātos, ka tā neizslēdz vēlamos notikumus. Bufera pārpilde rodas, ja SQL Server nevar pietiekami ātri ierakstīt notikumus, parasti ar nefiltrētām trasēm noslogotās sistēmās. Pievienojiet filtrus, lai samazinātu notikumu apjomu vai palielinātu diska I/O veiktspēju. Pārbaudiet, vai nav kļūdu ziņojumu, kas norāda, ka notikumi netika tverti.

J: Kā es varu iegūt informāciju par strupceļu, izmantojot SQL Server Profilētājs?

A: Izveidojiet izsekošanas failu, kurā iekļauti notikumi Lock:Deadlock un Lock:Deadlock Chain no kategorijas Locks. Pārliecinieties, vai ir atlasīta kolonna TextData, jo tajā ir strupceļa grafika XML. Kad rodas strupceļš, kopējiet XML failu no TextData kolonnas, saglabājiet to ar .xdl paplašinājumu un atveriet to programmā SQL Server Management Studio, lai skatītu grafisko strupceļa diagrammu.

J: Kāda ir atšķirība starp izsekošanas datu saglabāšanu failos un tabulās?

A: Faili nodrošina labāku veiktspēju izsekošanas izpildes laikā, jo tie apiet SQL Server Krātuves dzinējs. Failu izsekošanas dati tiek ierakstīti tieši diskā ar minimālu papildu slodzi. Tabulu izsekošanas dati tiek ierakstīti, izmantojot krātuves dzinēju, tādējādi palielinot papildu slodzi, bet nodrošinot tūlītēju T-SQL vaicājumu veikšanu izsekošanas datiem. Izmantojiet failus veiktspējas ziņā jutīgiem scenārijiem un tabulas, ja dati ir jāvaicā tūlīt tveršanas laikā vai pēc tās.

J: Vai es varu automatizēt SQL Server Profilētāja izsekošanas datu apkopošana?

A: Jā, automatizēt izsekošanas datu apkopošanu, izmantojot servera puses izsekošanas datus, kas izveidoti ar T-SQL saglabātajām procedūrām. Rakstīt skriptus, izmantojot sp_trace_create un saistītās procedūras, pēc tam ieplānot tos, izmantojot SQL Server Aģenta darbi. Šī pieeja nodrošina neuzraudzītu izsekošanas datu apkopošanu noteiktos grafikos. PowerShell skripti nodrošina vēl vienu automatizācijas iespēju sarežģītākiem scenārijiem.

J: Cik ilgi man vajadzētu veikt izsekošanu?

A: Izsekošanas ilgums ir atkarīgs no jūsu mērķiem. Lai novērstu konkrētas problēmas, veiciet izsekošanu, vienlaikus reproducējot problēmu, parasti 5–30 minūtes. Veiktspējas analīzei apkopojiet vismaz vienu stundu maksimālās aktivitātes periodos. Darba slodzes analīzei vai jaudas plānošanai apkopojiet vairākas stundas dažādos laika periodos. Vienmēr apturiet izsekošanu, kad uzraudzība ir pabeigta, lai atbrīvotu resursus.

J: Kas jādara, ja mans izsekošanas fails kļūst pārāk liels?

A: Trasēšanas īpašībās iespējojiet failu pārnešanu, lai izveidotu vairākus mazākus failus viena liela faila vietā. Iestatiet maksimālo faila lielumu atbilstoši diska vietai un analīzes vajadzībām. Izmantojiet filtrus, lai samazinātu uztverto notikumu apjomu. Lielu trasējumu gadījumā apsveriet datu analīzi segmentos, nevis visu trasējumu ielādi uzreiz. Regulāri arhivējiet vai dzēsiet vecos trasēšanas failus, lai pārvaldītu diska vietu.

J: Kā atrast vaicājumus, kas izraisa lielu centrālā procesora noslodzi?

A: Izveidojiet izsekošanas datus ar notikumiem SQL:BatchCompleted un RPC:Completed. Iekļaujiet kolonnas CPU, Duration un TextData. Filtrējiet pēc Duration, lai tvertu tikai vaicājumus, kas pārsniedz noteiktu slieksni, piemēram, 1000 milisekundes. Pēc datu apkopošanas kārtojiet tos pēc CPU kolonnas dilstošā secībā. Vaicājumi augšpusē patērē visvairāk procesora laika. Pārbaudiet šos vaicājumus, lai atrastu optimizācijas iespējas, piemēram, trūkstošus indeksus vai neefektīvu loģiku.

J: Vai SQL Server Profilētāja uztveršanas vaicājumu izpildes plāni?

A: SQL Server Profiler var tvert izpildes plāna informāciju, izmantojot Showplan XML notikumus veiktspējas kategorijā. Atlasiet Showplan XML vai Showplan XML Statistics Profile notikumus, lai tvertu pilnīgus izpildes plānus. TextData kolonnā ir XML plāna dati. Tomēr ikdienas izpildes plāna analīzei SQL Server Management Studio grafiskā izpildes plāna funkcijas vai Query Store piedāvā vienkāršākas alternatīvas.

J: Kāda ir labākā veidne, ar ko sākt vispārējai uzraudzībai?

A: Standarta veidne nodrošina labu sākumpunktu vispārējai uzraudzībai. Tā ietver bieži sastopamus vaicājumu izpildes notikumus, saglabāto procedūru izsaukumus un kļūdu izsekošanu ar līdzsvarotu papildu slodzi. Lai veiktu mazāku ietekmi uz uzraudzību, kas koncentrējas uz vaicājumu veiktspēju, izmantojiet TSQL veidni. Pielāgojiet veidnes atbilstoši savām īpašajām vajadzībām, pievienojot filtrus un pielāgojot notikumu atlasi pēc pamatu izpratnes.

J: Kā izsekot tikai konkrētu lietojumprogrammu vai lietotāju?

A: Izmantojiet kolonnu filtrus, lai izolētu konkrētas lietojumprogrammas vai lietotājus. Lietojumprogrammām filtrējiet pēc kolonnas ApplicationName, izmantojot savienojuma virknē norādīto nosaukumu. Lietotājiem filtrējiet pēc kolonnas LoginName ar SQL Server pieteikšanās vai Windows konta nosaukums. Apvienojiet vairākus filtrus, lai vēl vairāk sašaurinātu fokusu, piemēram, filtrējot pēc ApplicationName un DatabaseName, lai uzraudzītu vienas lietojumprogrammas darbību konkrētā datubāzē.

15. Secinājums un nākamie soļi

15.1 atslēgas līdzņemšanai

SQL Server Profiler joprojām ir vērtīgs rīks ad-hoc datubāzu problēmu novēršanai, neskatoties uz tā novecojušo statusu. Vienkāršais interfeiss un visaptverošā notikumu uztveršana padara to ideāli piemērotu ātrām diagnostikas sesijām, kad nepieciešami tūlītēji rezultāti. Izmantojiet Profiler specifisku problēmu novēršanai, lietojumprogrammu darbības analīzei un drošības auditam.

Labākā prakse ietver filtru agresīvu izmantošanu, lai samazinātu ietekmi uz veiktspēju, priekšroku dodot servera puses izsekošanai ražošanas vidē un ierobežojot izsekošanas ilgumu līdz nepieciešamajiem periodiem. Atlasiet tikai būtiskus notikumus un kolonnas, lai samazinātu papildu slodzi. Lai nodrošinātu labāku veiktspēju tveršanas laikā, saglabājiet izsekošanas failus, nevis tabulas.

15.2 Virzība uz priekšu: modernu rīku izmantošana

Pāreja no SQL Server No Profiler līdz paplašinātajiem notikumiem ilgtermiņa uzraudzības risinājumiem. Lai gan Profiler paliek funkcionāls, laika ieguldīšana paplašināto notikumu apguvē sagatavo jūs nākotnes uzraudzības risinājumiem. SQL Server versijas. Sāciet ar vienkāršām paplašināto notikumu sesijām, kas atkārto jūsu biežāk lietotās Profiler izsekošanas.

Iespējojiet vaicājumu krātuvi ražošanas datubāzēs, lai iegūtu automātisku veiktspējas uzraudzību bez manuālas izsekošanas konfigurācijas. Vaicājumu krātuve nepārtraukti tver vaicājumu plānus un izpildes statistiku, nodrošinot bāzes datus veiktspējas analīzei. Apvienojiet vaicājumu krātuvi ar mērķtiecīgām paplašināto notikumu sesijām, lai nodrošinātu visaptverošu uzraudzību.

15.3 Papildu resursi

Šie resursi palīdzēs jums padziļināt savas zināšanas SQL Server Profilētāja zināšanas un sekojiet līdzi jaunākajai uzraudzības paraugpraksei:

Oficiālā Microsoft dokumentācija

Kopienas resursi

  • SQL Server Central — raksti, forumi un skripti datubāzu speciālistiem
  • Steka pārpilde SQL Server Birka — kopienas jautājumi un atbildes konkrētiem problēmu novēršanas jautājumiem
  • Reddit r/SQLServer – diskusiju forums par SQL Server tēmas un padomi
  • SQLServerCentral.com forumi — aktīvas kopienas diskusijas par profilēšanu un veiktspēju
  • MSDN SQL Server Forumi — Microsoft mitināti kopienas atbalsta forumi

Blogi un tehniskie raksti

  • SQL Server Performance Monitor – Īpašs veiktspējas uzraudzības un optimizācijas saturs
  • Brent Ozar Unlimited emuārs — veiktspējas uzlabošanas un uzraudzības labākā prakse
  • SQLSkills.com – eksperta līmenis SQL Server saturs no nozares līderiem
  • microsoft SQL Server Blogs — Oficiāli produktu atjauninājumi un funkciju paziņojumi
  • Vienkārša saruna – praktiska SQL Server pamācības un gadījumu izpēte

Apmācība un sertifikācija

grāmatas

  • SQL Server Vaicājumu veiktspējas regulēšana — visaptveroša veiktspējas optimizācijas rokasgrāmata
  • profesionālis SQL Server Iekšējās daļas — padziļināta izpēte SQL Server arhitektūra
  • SQL Server Izpildes plāni — vaicājumu optimizācijas izpratne
  • Ekspertu veiktspējas indeksēšana SQL Server – Indeksa dizains un optimizācija
  • SQL Server Paplašināta problēmu novēršana un veiktspējas regulēšana — uzlabotas diagnostikas metodes

Rīki un utilītas

  • SQL Server Vadības studija – Primārā saskarne priekš SQL Server Profils
  • Azure DataStudio – Mūsdienīgs starpplatformu datubāzes rīks
  • sp_WhoIsActive — populāra kopienas veidota uzraudzības saglabātā procedūra
  • SQL Sentry Plan Explorer – bezmaksas izpildes plāna analīzes rīks
  • DBForge Studio — trešās puses programmatūra SQL Server izstrādes un administrēšanas rīks

par autoru

Juaņs Šens ir vecākais datubāzes administrators (DBA) ar vairāk nekā 10 gadu pieredzi SQL Server vides un uzņēmumu datubāzu pārvaldību. Viņš ir veiksmīgi atrisinājis simtiem datubāzu atkopšanas scenāriju finanšu pakalpojumu, veselības aprūpes un ražošanas organizācijās.

Juaņa specializējas SQL Server datubāzes atgūšana, augstas pieejamības risinājumiun veiktspējas optimizāciju. Viņa plašā praktiskā pieredze ietver vairāku terabaitu datubāzu pārvaldību, ieviešanu Vienmēr pieejamības grupas, un izstrādājot automatizētas dublēšanas un atkopšanas stratēģijas misijai kritiski svarīgām biznesa sistēmām.

Izmantojot savu tehnisko pieredzi un praktisko pieeju, Juans koncentrējas uz visaptverošu rokasgrāmatu izveidi, kas palīdz datubāzu administratoriem un IT speciālistiem risināt sarežģītus jautājumus SQL Server efektīvi izaicina. Viņš seko līdzi jaunākajām tendencēm SQL Server laidieniem un Microsoft attīstītajām datubāzu tehnoloģijām, regulāri testējot atkopšanas scenārijus, lai nodrošinātu, ka viņa ieteikumi atspoguļo labāko praksi reālajā pasaulē.

Ir jautājumi par SQL Server atkopšanai vai nepieciešama papildu palīdzība datubāzes problēmu novēršanā? Juans laipni aicina atsauksmes un ieteikumi lai uzlabotu šos tehniskos resursus.

Kopīgot tūlīt: