Podijeli sada:

 

Sadržaj sakriti

1. Uvod u SQL Server Profiler

1.1 Šta je SQL Server Profiler i zašto nam je potreban?

SQL Server Profiler je alat s grafičkim korisničkim interfejsom za praćenje i snimanje događaja koji se događaju unutar SQL ServerOvaj moćan dijagnostički alat omogućava administratorima baza podataka i programerima da prate aktivnost mehanizma baze podataka u realnom vremenu, pomažući u identifikovanju uskih grla u performansama, rešavanju problema sa aplikacijama i reviziji sigurnosnih događaja.

SQL Server Profiler

1.2 SQL Server Profiler u 2025. godini: Trenutno stanje i alternative

Microsoft je zastario SQL Server Profiler koji počinje sa SQL Server 2016., preporučujući Extended Events kao zamjenska tehnologija. Međutim, alat ostaje dostupan u trenutnoj SQL Server verzije uključujući SQL Server 2022. godine i još uvijek ga široko koriste stručnjaci za baze podataka.

1.3 Kome je namijenjen ovaj vodič

  • Ovaj vodič služi administratorima baza podataka kojima je potrebno praćenje SQL Server instance, dijagnosticirati probleme s performansama i osigurati pouzdanost sistema. DBA-ovi će pronaći praktične smjernice za hvatanje tragova, analizu događaja i implementaciju strategija praćenja.
  • Programeri aplikacija imaju koristi od razumijevanja kako njihov kod interaguje sa SQL ServerSQL Profiler pomaže programerima da identifikuju neefikasne upite, provjere ponašanje aplikacije i otklone greške povezane s bazom podataka.
  • Analitičari performansi i konsultanti će otkriti napredne tehnike za analizu opterećenja, planiranje kapaciteta i optimizaciju sistema. Sveobuhvatna pokrivenost konfiguracije praćenja, filtriranja i analize omogućava temeljite procjene performansi baze podataka.

2. razumijevanje SQL Server Osnove profilera

2.1 Kako SQL Server Profiler Works

SQL Server Profiler funkcioniše kao klijentska aplikacija koja se povezuje sa SQL Trace mehanizmom koji radi unutar SQL ServerKada kreirate trag, mehanizam baze podataka prati određene događaje i bilježi ih u skladu s vašom konfiguracijom. Mehanizam za praćenje prikuplja podatke o događajima uz minimalan utjecaj na performanse servera kada je pravilno konfiguriran.

Osnovna infrastruktura SQL Trace-a koristi lagane hooks događaje u cijelom mehanizmu baze podataka. Kada se dogodi događaj koji odgovara vašoj definiciji praćenja, mehanizam bilježi relevantne informacije i šalje ih Profiler interfejsu ili ih pohranjuje u datoteku ili tabelu. Ova arhitektura omogućava fleksibilno prikupljanje podataka bez mijenjanja koda aplikacije.

2.2 Ključni koncepti i terminologija

2.2.1 Events

Događaji predstavljaju specifične pojave unutar SQL Server koje mehanizam za praćenje može uhvatiti. Svaki događaj odgovara određenoj operaciji baze podataka ili aktivnosti sistema. SQL Server Profiler organizira događaje u logičke kategorije radi lakše konfiguracije.

Uobičajene kategorije događaja uključuju TSQL za izvršavanje upita, pohranjene procedure za pozive procedura, zaključavanja za praćenje konkurentnosti i greške i upozorenja za praćenje izuzetaka. Odabir odgovarajućih događaja određuje koje informacije vaš trag bilježi i direktno utiče na korisnost i opterećenje performansi traga.

Razumijevanje tipova događaja pomaže vam da konfigurirate efikasna praćenja. RPC:Completed događaji bilježe dovršetke poziva udaljenih procedura, SQL:BatchCompleted događaji prate ad-hoc serije upita, a Lock:Deadlock događaji identificiraju pojave zastoja. Odaberite događaje koji su usklađeni s vašim specifičnim ciljevima rješavanja problema ili praćenja.

2.2.2 Kolone podataka

Kolone s podacima definiraju koje informacije trag prikuplja za svaki događaj. Uobičajene kolone uključuju TextData za stvarnu SQL naredbu, Duration za vrijeme izvršavanja, CPU za iskorištenost procesora, Reads za čitanja logičkog diska i Writes za pisanja na logički disk.

Osnovne kolone variraju u zavisnosti od slučaja upotrebe. Rješavanje problema s performansama obično zahtijeva kolone Duration (Trajanje), CPU (CPU), Reads (Čitanja) i Writes (Zapisivanja). Sigurnosna revizija zahtijeva kolone LoginName (Prijava), DatabaseName (Naziv baze podataka) i ObjectName (Naziv objekta). Otklanjanje grešaka u aplikacijama ima koristi od kolona ApplicationName (Naziv aplikacije), SPID (SPID) i Error (Greška).

Odabir samo neophodnih kolona smanjuje opterećenje praćenja i pojednostavljuje analizu. Izbjegavajte prikupljanje svih dostupnih kolona osim ako to nije posebno potrebno. Svaka dodatna kolona povećava količinu prikupljenih i obrađenih podataka, što potencijalno utiče na performanse servera.

2.2.3 filtera

Filteri ograničavaju koje događaje praćenje bilježi na osnovu određenih kriterija. Pravilno konfigurirani filteri dramatično smanjuju količinu praćenja, čineći analizu upravljivom i minimizirajući utjecaj na performanse. Filteri procjenjuju podatke o događajima prije snimanja, sprječavajući nepotrebno prikupljanje podataka.

Uobičajeni kriteriji filtriranja uključuju NazivDatabaseName za fokusiranje na određene baze podataka, NazivApplicationName za izoliranje određenih aplikacija, Trajanje za hvatanje samo sporih operacija i NazivPrijave za praćenje određenih korisnika. Kombiniranje više filtera stvara precizne definicije tragova koje hvataju upravo ono što vam je potrebno.

Filtriranje koje vodi računa o performansama je ključno za produkcijska okruženja. Uvijek filtrirajte po nazivu baze podataka ili nazivu aplikacije kako biste izbjegli snimanje aktivnosti sistema. Postavite minimalne pragove trajanja kako biste zanemarili upite koji se brzo izvršavaju. Oprezno koristite filtere tekstualnih podataka jer zahtijevaju poređenje stringova koje dodaje opterećenje.

2.2.4 Predlošci tragova

Predlošci praćenja pružaju unaprijed konfigurirane odabire događaja, kolona i filtera za uobičajene scenarije. SQL Server Profiler uključuje nekoliko ugrađenih predložaka koji služe kao početne tačke za kreiranje tragova. Prilagođeni predlošci spremaju vaše konfiguracije za ponovnu upotrebu u više sesija praćenja.

Standardni predložak bilježi opći skup događaja pogodnih za osnovno praćenje. TSQL predložak se fokusira na izvršavanje upita uz minimalne troškove. Predložak za podešavanje prikuplja događaje posebno za analizu Database Engine Tuning Advisora. Svaki predložak uravnotežuje prikupljanje informacija s utjecajem na performanse.

Kreiranje prilagođenih predložaka štedi vrijeme i osigurava konzistentnost u svim sesijama praćenja. Konfigurirajte praćenje sa željenim događajima, kolonama i filterima, a zatim ga sačuvajte kao predložak. Prilagođeni predlošci postaju posebno vrijedni kada više puta rješavate slične probleme.

3. Početak rada SQL Server Profiler

3.1 Sistemski zahtjevi i preduslovi

SQL Server Profiler dolazi u paketu sa SQL Server Management Studio i podržava sve trenutno održavane SQL Server verzije, od SQL Server 2016 do 2022.

Zahtjevi za dozvole određuju ko može kreirati i pokretati tragove. Članovi fiksne uloge servera sysadmin imaju neograničen pristup SQL Server Funkcionalnost profilera. Za korisnike koji nisu administratori sistema, dozvola ALTER TRACE daje mogućnost kreiranja i upravljanja tragovima.

Prilikom praćenja udaljenih servera primjenjuju se mrežna razmatranja. Praćenje na strani klijenta zahtijeva kontinuiranu mrežnu povezanost između vaše radne stanice i SQL Server instanca. Prekinute veze zaustavljaju praćenje na strani klijenta, što potencijalno dovodi do gubitka snimljenih podataka. Tragovi na strani servera izbjegavaju ovo ograničenje tako što se u potpunosti izvršavaju na serveru baze podataka.

3.2 Kako pokrenuti SQL Server Profiler

3.2.1 Počevši od SQL Server Management Studio (SSMS)

Slijedite ove korake za pokretanje SQL Server Profiler iz SSMS-a:

  1. otvoreno SQL Server Management Studio i povezivanje s bilo kojim SQL Server primer.
  2. kliknite Alat meni u gornjoj traci menija.
  3. izabrati SQL Server Profiler iz padajućeg menija.
  4. The SQL Server Aplikacija Profiler se pokreće u novom prozoru.

Start SQL Server Profiler u SQL Server ManagementStudio.

3.2.2 Pokretanje iz Windows Start menija

pristup SQL Server Profiler direktno iz Windowsa koristeći ove korake:

  1. Kliknite na Windows Start dugme.
  2. tip SQL Server Profiler u polju za pretragu.
  3. izabrati SQL Server Profiler iz rezultata pretraživanja.
  4. Aplikacija se pokreće bez aktivnih veza.

Start SQL Server Profiler iz Windows polja za pretragu.

Alternativno, krećite se kroz hijerarhiju menija Start:

  1. Otvorite Start meni.
  2. Pronađite Microsoft SQL Server Alat folder.
  3. Proširite mapu i kliknite SQL Server Profiler.

Start SQL Server Profiler iz Windows Start menija.

3.2.3 Povezivanje na SQL Server slučajevima

Nakon lansiranja SQL Server Profiler, uspostavite vezu slijedeći ove korake:

  1. kliknite fajl u traci menija.
  2. izabrati Novi trag iz padajućeg menija.
  3. The Povežite se sa serverom pojavljuje se dijalog.
  4. Unesite naziv vašeg servera u Ime servera polje.
  5. Izabrati Windows autentikacija or SQL Server Authentication.
  6. Ako koristite SQL Server Autentifikacija, unesite svoje pristupne podatke.
  7. kliknite spojiti za uspostavljanje veze.

Povežite se na a SQL Server instanca u SQL Server Profiler.

Za udaljene veze, navedite puno ime servera, uključujući ime instance, ako je primjenjivo. Koristite format SERVERNAME\INSTANCENAME za imenovane instance. Provjerite mrežnu povezanost i postavke zaštitnog zida ako pokušaji povezivanja ne uspiju.

4. Kreiranje i konfigurisanje SQL Server Tragovi

4.1 Kreiranje vašeg prvog traga pomoću predloška

Kreirajte svoj prvi trag koristeći ove korake:

  1. lansiranje SQL Server Profiler.
  2. kliknite fajl -> Novi trag i povežite se sa svojim ciljnim serverom.
  3. The Svojstva traga pojavljuje se dijalog.
  4. Unesite opisni naziv u Naziv traga polje.
  5. Odaberite predložak iz Koristite šablon ispustiti.
  6. Odaberite Standardno (zadano) predložak za opće praćenje. Ili drugi predložak za druge svrhe. Predložak pruža unaprijed konfigurirane događaje, kolone i filtere za uobičajene scenarije.
  7. kliknite trčanje da odmah počnete snimati događaje.

Postavite svojstva traga u SQL Server Profiler.

4.2 Prilagodite svoj trag

Često se dešava da predlošci ne mogu ispuniti vaše zahtjeve. U takvom slučaju, možete u potpunosti prilagoditi svoj trag:

  1. U Svojstva traga dijalog.
  2. Izaberite Blank šablon iz Koristite šablon ispustiti.Koristite prazan predložak za trag.
  3. kliknite Izbor događaja sada možete prilagoditi sve događaje, kolone podataka i filtere na osnovu vaših zahtjeva. O njima ćemo govoriti u sljedećim odjeljcima.
    Prilagodite trag na kartici "Odabir događaja" u dijalogu "Svojstva traga".

4.3 Odabir događaja za snimanje

Možete odabrati događaj u Izbor događaja kartica:

  1. kliknite + ikonu pored kategorije Događaj da biste je proširili.
  2. Kliknite na polje za potvrdu pored događaja da biste ga odabrali.

Odaberite događaj u dijalogu "Svojstva traga".

4.3.1 Razumijevanje kategorija događaja

SQL Server Profiler organizira događaje u kategorije radi logičkog grupiranja. Kategorija Pohranjene procedure uključuje događaje za izvršavanje procedura, uključujući SP:Starting, SP:Completed i SP:StmtCompleted. Ovi događaji prate pozive pohranjenih procedura i izvršavanje pojedinačnih naredbi unutar procedura.

TSQL kategorija obuhvata izvršavanje ad-hoc upita pomoću događaja kao što su SQL:BatchStarting i SQL:BatchCompleted. Ovi događaji prate upite poslane direktno na SQL Server izvan uskladištenih procedura.

Kategorija Zaključavanja prati događaje povezane s konkurentnošću, uključujući Zaključavanje:Steknuto, Zaključavanje:Otpušteno, Zaključavanje:Zastoj i Zaključavanje:Isteklo vrijeme. Koristite ove događaje za dijagnosticiranje problema s blokiranjem i zastojem koji utječu na performanse aplikacije.

Kategorija Greške i upozorenja obuhvata izuzetke, uključujući Izuzetak, Pažnju i Korisničku poruku o grešci. Ovi događaji pomažu u identifikaciji grešaka aplikacije i SQL Server upozorenja tokom sesija praćenja.

4.3.2 Odabir pravih događaja za vaš scenario

Praćenje performansi zahtijeva događaje koji bilježe potrošnju resursa. Odaberite RPC:Completed i SQL:BatchCompleted za praćenje izvršavanja upita. Uključite kolone Duration, CPU, Reads i Writes za mjerenje korištenja resursa. Ovi događaji pružaju osnovu za identifikaciju uskih grla u performansama.

Sigurnosna revizija zahtijeva događaje koji prate autentifikaciju i autorizaciju. Odaberite Prijava putem revizije, Odjava putem revizije, Prijava putem revizije nije uspjela i Objekt: Otvoreno da biste pratili pristup bazi podataka. Uključite kolone Naziv prijave, Naziv baze podataka i Naziv objekta da biste identificirali ko je pristupio kojim resursima.

Scenariji otklanjanja grešaka imaju koristi od sveobuhvatnog snimanja događaja. Uključite događaje pohranjenih procedura, SQL batch događaje i događaje grešaka kako biste pratili kompletne tokove izvršavanja. Zabilježite dodatni kontekst pomoću kolona SPID, ApplicationName i HostName kako biste povezali događaje sa određenim sesijama.

4.4 Konfigurisanje kolona podataka

Podrazumevano, kada odaberete događaj, sve njegove kolone sa podacima će biti odabrane (označene). Možete poništiti odabir nepotrebnih kolona kako biste smanjili opterećenje i pojednostavili analizu:

Označite/poništite odabir kolona podataka za događaj u dijalogu "Svojstva traga".

Osnovne kolone za svaki trag uključuju EventClass za identifikaciju tipa događaja, TextData za snimanje stvarne SQL naredbe, LoginName za identifikaciju korisnika koji izvršava i StartTime za vremensku oznaku kada se događaj dogodio. Ove kolone pružaju osnovni kontekst za svaki snimljeni događaj.

Kolone povezane s performansama mjere potrošnju resursa. Trajanje označava koliko je dugo trajao događaj u mikrosekundama. CPU prikazuje vrijeme procesora u milisekundama. Čitanja broje čitanja logičkih stranica. Zapisi prate zapise na logičke stranice. Ove metrike identificiraju operacije koje intenzivno koriste resurse i zahtijevaju optimizaciju.

Kolone za sigurnost i reviziju prate obrasce pristupa podacima. NazivDatabaseName identificira kojoj je bazi podataka pristupljeno. NazivObjectName specificira tabelu ili objekt o kojem je riječ. NazivApplicationName otkriva koja je aplikacija pokrenula aktivnost. Zajedno, ove kolone pružaju sveobuhvatne tragove revizije.

4.5 Postavljanje filtera za smanjenje šuma

4.5.1 Uobičajeni kriteriji filtriranja

Konfigurišite filtere koristeći sljedeći pristup:

  1. Otvorite Svojstva traga dijalog.
  2. kliknite Izbor događaja tab.
  3. kliknite Filteri kolona dugme u donjem desnom uglu.
    Kliknite na dugme "Filteri kolona" u dijalogu "Svojstva traga".
  4. Odaberite kolonu sa liste s lijeve strane.
  5. Konfigurišite kriterije filtera u panelu sa desne strane.
    Postavite filter za kolonu podataka u dijalogu "Svojstva traga".
  6. kliknite OK da primenite filter.

Filteri naziva aplikacija izoluju aktivnost od određenih aplikacija. Proširite kolonu Naziv aplikacije u dijalogu filtera, unesite naziv svoje aplikacije u kao polje i SQL Server Profiler bilježi samo događaje iz te aplikacije. Ovaj filter se pokazao neprocjenjivim prilikom rješavanja problema specifičnih za aplikaciju.

Filteri za nazive baza podataka ograničavaju snimanje na određene baze podataka. Filtrirajte po NazivuBazePodataka da biste isključili aktivnost sistemske baze podataka i fokusirali se na baze podataka vaše aplikacije. Unesite nazive baza podataka u kao or jednak polje u zavisnosti od toga da li vam je potrebno podudaranje džoker znakova.

Filteri trajanja hvataju samo sporo izvršavane operacije. Postavite minimalni prag u Veće ili jednako polje u koloni Trajanje. Na primjer, postavljanje Trajanja >= 1000 bilježi samo događaje koji traju duže od jedne sekunde, filtrirajući upite koji se brzo izvršavaju.

Filteri korisničkih imena prate aktivnost određenih korisnika. Filtrirajte po korisničkom imenu (LoginName) za praćenje određenih korisnika baze podataka. Ovaj pristup pomaže u identifikaciji korisnika koji izvršavaju problematične upite ili pristupaju osjetljivim podacima.

4.4.2 Najbolje prakse filtriranja

Efikasno filtriranje uravnotežuje prikupljanje podataka s utjecajem na performanse. Uvijek primijenite barem jedan filter kako biste spriječili prikupljanje prekomjerne aktivnosti sistema. Filteri DatabaseName i ApplicationName trebali bi biti vaša početna tačka za većinu tragova.

Izbjegavajte preširoke tragove u produkcijskim okruženjima. Nefiltrirani tragovi bilježe ogromne količine podataka, što potencijalno smanjuje performanse servera i čini analizu nepraktičnom. Postavite specifične kriterije filtriranja koji ciljaju vaše ciljeve rješavanja problema.

Testirajte filtere prije implementacije u produkciju. Prvo pokrenite tragove u razvojnim ili testnim okruženjima kako biste provjerili da li filteri obuhvataju očekivane događaje bez prekomjernog opterećenja. Prilagodite kriterije filtera na osnovu količine prikupljenih podataka.

4.5 Rad sa šablonima za praćenje

4.5.1 Pregled ugrađenih predložaka

Standardni predložak pruža uravnoteženo snimanje događaja pogodno za opći nadzor. Uključuje uobičajene događaje izvršavanja upita, pozive pohranjenih procedura i osnovno praćenje grešaka. Koristite ovaj predložak kada vam je potrebna sveobuhvatna vidljivost, a da ne znate tačno šta tražiti.

TSQL predložak se fokusira posebno na izvršavanje upita s minimalnim odabirom događaja. Bilježi SQL:BatchCompleted i RPC:Completed događaje s bitnim kolonama za analizu performansi. Ovaj predložak nudi niže opterećenje od standardnog predloška.

Predložak za podešavanje optimizuje odabir događaja za analizu savjetnika za podešavanje motora baze podataka. Bilježi događaje i kolone potrebne za analizu opterećenja i preporuke indeksa. Koristite ovaj predložak prilikom pripreme tragova za automatsko podešavanje performansi.

Predložak TSQL_Replay uključuje sve događaje i kolone potrebne za funkcionalnost ponovnog prikaza traga. On bilježi sveobuhvatne detalje izvršavanja, omogućavajući vam reprodukciju snimljenih opterećenja u testnim okruženjima. Ovaj predložak generira veće datoteke traga zbog opsežnog prikupljanja podataka.

4.5.2 Kreiranje prilagođenih predložaka

Kreirajte prilagođene predloške slijedeći ove korake:

  1. kliknite fajl -> Obrasci -> Novi šablon …
  2. Unesite opisni naziv u Naziv novog predloška polje.
  3. Opcionalno, označite Bazirajte novi šablon na postojećem i odaberite postojeći predložak ako ne želite graditi od nule:
    Kreirajte novi predložak u SQL Server Profiler.
  4. kliknite Izbor događaja prilagodite predložak praćenja željenim događajima, kolonama i filterima baš kao što vi uraditi sa normalnim tragom.
  5. kliknite Save da sačuvate šablon.

Izvoz predložaka za dijeljenje s članovima tima ili u svrhu izrade sigurnosnih kopija:

  1. kliknite fajl -> Obrasci -> Izvoz predloška.
  2. Odaberite predložak koji želite izvesti.
    Izvezite predložak traga u SQL Server Profiler.
  3. Idite do željene lokacije za spremanje.
  4. Unesite naziv datoteke i kliknite Save.
  5. Podijelite *.tdf datoteku (SQL Server Datoteka predloška profilera) s drugim SQL Server Korisnici profilera.

4.6 Spremanje izlaza traga

Podrazumevano, SQL Server Profiler će prikazati događaje u prozoru za praćenje, ali ih NEĆE sačuvati. Možete odabrati da sačuvate podatke o praćenju u datoteku ili tabelu u Svojstva traga dijalog prilikom kreiranja novog traga.

4.6.1 Sačuvaj u datoteku

  1. U Svojstva traga dijalog, provjera Spremi u datoteku.
  2. Kliknite na ikonu mape da biste otvorili preglednik datoteka.
  3. Idite do željene lokacije za spremanje.
  4. Unesite naziv datoteke s ekstenzijom .trc.
  5. kliknite Save.
  6. Set Postavi maksimalnu veličinu datoteke da ograničite veličinu pojedinačnih datoteka.
  7. omogućiti Omogući prebacivanje datoteka za kreiranje više datoteka.
  8. Opcionalno omogući Server obrađuje podatke praćenja za tragove na strani servera.

U dijalogu "Svojstva traga" podesite spremanje podataka traga u datoteku.

Upravljanje veličinom datoteka sprječava iscrpljivanje prostora na disku. Postavite maksimalnu veličinu datoteke na razumnu vrijednost, kao što je 500 MB ili 1 GB, na osnovu dostupnog prostora na disku i očekivanog trajanja praćenja. Prebacivanje datoteka automatski kreira nove datoteke kada se dostigne ograničenje veličine, dodajući broj nazivu datoteke.

4.6.2 Sačuvaj u tabelu

  1. U Svojstva traga dijalog, provjera Sačuvaj u tabelu.
  2. The Tabela odredišta pojavljuje se dijalog.
    Odaberite odredišnu tabelu za spremanje podataka praćenja.
  3. Odaberite server iz server ispustiti.
  4. Odaberite bazu podataka iz baza podataka ispustiti.
  5. Odaberite postojeću tabelu ili unesite novi naziv tabele u sto polje.
  6. kliknite OK da potvrdi.
  7. Opcionalno postavljeno Postavi maksimalan broj redova da ograničite veličinu tabele.

Postavite spremanje podataka praćenja u tabelu u dijalogu "Svojstva praćenja".

Prilikom spremanja u tabele primjenjuju se razmatranja performansi. Pohranjivanje u tabele uvodi dodatne troškove u poređenju sa pohranjivanjem u datoteke jer SQL Server Morate zapisivati ​​podatke praćenja putem mehanizma za pohranu. Koristite pohranu u tablici kada trebate odmah upitati podatke praćenja pomoću T-SQL-a.

Zadržavanje podataka postaje važno za tragove zasnovane na tabelama. Postavite maksimalna ograničenja redova kako biste spriječili preveliki rast tabela. Redovno arhivirajte ili brišite stare podatke o tragovima kako biste održali performanse. Razmislite o particioniranju velikih tabela praćenja radi boljeg upravljanja.

5. Vođenje i upravljanje SQL Server Tragovi

5.1 Pokretanje, pauziranje i zaustavljanje tragova

Upravljajte izvršavanjem praćenja pomoću dugmadi na alatnoj traci:Upravljajte tragovima putem dugmadi na alatnoj traci u SQL Server Profiler.

  • Zelena Start Dugme počinje snimati događaje prema vašoj konfiguraciji.
  • kliknite pauza privremeno obustaviti prikupljanje podataka bez gubitka veze.
  • kliknite Stop da biste završili praćenje i zatvorili vezu.

Preko stavki menija:
Upravljajte tragovima putem stavki menija u SQL Server Profiler.

Desnim klikom miša na bilo koji unos u prozoru za praćenje:

Upravljajte tragovima putem stavki menija koje se kliknu desnim klikom miša u SQL Server Profiler.

Upravljanje životnim ciklusom praćenja utiče na resurse servera. Aktivna praćenja troše memoriju i procesorsku snagu proporcionalno količini snimljenih događaja. Pauzirajte praćenja tokom perioda kada praćenje nije potrebno kako biste smanjili opterećenje. Potpuno zaustavite praćenja kada je analiza završena kako biste oslobodili resurse.

Tragovi na strani klijenta zahtijevaju aktivnu vezu s Profilerom. Zatvaranje SQL Server Prozor Profilera odmah zaustavlja tragove na strani klijenta. Minimizirajte prozor Profilera umjesto da ga zatvarate kako bi tragovi ostali aktivni dok radite u drugim aplikacijama.

5.2 Praćenje tragova u realnom vremenu

Pratite zabilježene događaje dok se pojavljuju u glavnom prozoru traga. Svaki red predstavlja jedan događaj sa kolonama koje prikazuju svojstva događaja. Mreža se kontinuirano ažurira tokom aktivnih tragova, prikazujući najnovije događaje na dnu prema zadanim postavkama.

Monitor tragova u realnom vremenu SQL Server Profiler.

Identifikujte obrasce i probleme posmatranjem učestalosti i karakteristika događaja. Događaji dugog trajanja ukazuju na probleme sa performansama. Česti događaji greške ukazuju na probleme sa aplikacijama. Neobična aktivnost prijave može signalizirati sigurnosne probleme. Praćenje u realnom vremenu omogućava trenutni odgovor na nastale probleme.

Pomičite se kroz zabilježene događaje kako biste pregledali određene pojave. Kliknite bilo koji red da biste odabrali događaj i vidjeli njegove sve detalje. Dvaput kliknite na događaje da biste otvorili detaljne dijaloške okvire svojstava koji prikazuju sve vrijednosti stupaca. Koristite funkciju zaključavanja pomicanja kako biste spriječili automatsko pomicanje prilikom pregleda historije događaja.

5.3 Upravljanje više istovremenih tragova

Istovremeno pokretanje više tragova pruža fleksibilnost za složene scenarije praćenja. Kreirajte odvojene tragove za različite aspekte aktivnosti baze podataka, kao što je jedan trag za praćenje performansi i drugi za sigurnosnu reviziju. Svaki trag se pokreće nezavisno sa vlastitom konfiguracijom.

Upravljajte više istovremenih tragova u SQL Server Profiler.

Raspodjela resursa postaje kritična kod višestrukih tragova. Svaki aktivni trag troši memoriju, CPU i potencijalno I/O operacije na disku. Ograničite broj istovremenih tragova i osigurajte da svaki trag koristi odgovarajuće filtere kako biste smanjili opterećenje. Pratite performanse servera dok pokrećete više tragova.

Koordinirajte vrijeme praćenja kako biste spriječili preklapanje praćenja s velikim opterećenjem. Ako je moguće, pokrećite praćenje koje zahtijeva mnogo resursa tokom perioda niske aktivnosti. Planirajte različita praćenja u različito vrijeme umjesto da sve pokrećete istovremeno.

5.4 Tragovi na strani klijenta u odnosu na tragove na strani servera

Podrazumevano, novokreirani trag je trag na strani klijenta, koji zahteva aktivnu vezu od SQL Server Profiler do servera baze podataka. Praćenje se odmah zaustavlja ako se veza prekine ili se Profiler zatvori.

Također možete kreirati trag na strani servera, koji se u potpunosti izvršava na SQL Server instancu bez potrebe za aktivnom Profiler konekcijom. Praćenje na strani servera nastavlja se izvršavati čak i nakon zatvaranja. SQL Server Profiler, zapisivanje podataka na određenu lokaciju datoteke.

Da biste kreirali trag na strani servera:

  1. Kliknite Datoteka -> Novi trag…
  2. U Svojstva traga dijalog, provjera Spremi u datoteku
  3. Postavite lokaciju datoteke i ostale postavke.
  4. omogućiti Server obrađuje podatke praćenja da biste kreirali trag na strani servera.

Kreirajte trag na strani servera u SQL Server Profiler.

Implikacije na performanse se značajno razlikuju između tipova tragova. Tragovi na strani klijenta moraju prenositi podatke preko mreže do Profiler interfejsa, što dodaje latenciju i potrošnju propusnog opsega. Tragovi na strani servera uvode manje opterećenje jer se podaci zapisuju direktno na disk na serveru.

Koristite tragove na strani klijenta za ad-hoc rješavanje problema, brze dijagnostičke sesije i situacije u kojima je trenutna vizualna povratna informacija vrijedna. Odaberite tragove na strani servera za praćenje produkcije, dugotrajna snimanja i scenarije koji zahtijevaju rad bez nadzora.

6. Analiziranje SQL Server Podaci profilera

6.1 Otvaranje i pregled sačuvanih tragova

Učitajte sačuvane datoteke tragova koristeći ove korake:

  1. lansiranje SQL Server Profiler.
  2. kliknite fajl -> otvoreno -> Datoteka traga.
  3. Idite do lokacije datoteke praćenja.
  4. Odaberite .trc datoteku i kliknite otvoreno.
  5. Podaci o tragu se učitavaju u glavni prozor.

Učitajte tabele praćenja slijedeći ovaj postupak:

  1. kliknite fajl -> otvoreno -> Trace Table.
  2. Povežite se sa serverom koji hostira tabelu praćenja.
  3. Odaberite bazu podataka iz baza podataka ispustiti.
  4. Izaberite sto iz sto ispustiti.
  5. kliknite OK da učitate podatke.

6.2 Filtriranje i pretraživanje podataka o tragovima

6.2.1 Filtriranje nakon snimanja

Primijenite filtere na učitane podatke praćenja pomoću ovih koraka:

  1. kliknite Uredi -> pronaći ili pritisnite Ctrl + F.
  2. Unesite tekst za pretragu u Nađi šta polje.
  3. Odaberite kolonu za pretraživanje iz Pogledajte ispustiti.
  4. kliknite Pronađi dalje da pronađete odgovarajuće događaje.

Pronađite podatke o tragovima u SQL Server Profiler.

Filtriranje na osnovu kolona pročišćava prikazane podatke bez ponovnog hvatanja događaja. Kliknite desnim tasterom miša na bilo koje zaglavlje kolone i odaberite opcije filtera iz kontekstnog menija. Unesite kriterijume filtera da biste prikazali samo odgovarajuće redove. Ovaj pristup ubrzava analizu skrivanjem nebitnih događaja.

6.2.2 Pronalaženje određenih događaja

Funkcionalnost pretraživanja pomaže u lociranju određenih događaja u velikim datotekama tragova. Koristite dijalog Pronađi za pretraživanje po tekstualnom sadržaju, vrsti događaja ili vrijednosti kolone. Regularni izrazi omogućavaju složene obrasce pretraživanja kada je to potrebno.

Označite važne događaje za brzo pronalaženje tokom analize. Kliknite desnim tasterom miša na zanimljive događaje i odaberite opcije oznaka da biste ih označili. Krećite se između oznaka pomoću prečica na tastaturi ili komandi menija, što olakšava poređenje povezanih događaja.

6.3 Grupiranje i agregiranje događaja

Grupirajte događaje prema vrijednostima kolone kako biste identificirali obrasce i sumirali aktivnosti. Kliknite desnim tasterom miša na bilo koje zaglavlje kolone i odaberite Grupiraj po ovoj koloni za organiziranje događaja. Grupirani prikazi objedinjuju slične događaje, što olakšava uočavanje općih obrazaca.

Agregirani prikazi pružaju statističke sažetke podataka o praćenju. Grupirajte po tekstualnim podacima da biste vidjeli koliko puta je svaki upit izvršen. Grupirajte po korisničkom imenu da biste vidjeli sažetke aktivnosti po korisniku. Agregacija otkriva obrasce koji nisu odmah očigledni u detaljnim listama događaja.

Proširite i sažmite grupe da biste detaljnije pregledali određene kategorije. Kliknite na ikone plus i minus pored zaglavlja grupa da biste prikazali ili sakrili grupisane događaje. Ovaj hijerarhijski prikaz olakšava analizu od vrha prema dolje, počevši od obrazaca visokog nivoa i ulazeći u detalje.

6.4 Izdvajanje SQL upita iz tragova

Izdvojite upite iz podataka praćenja slijedeći ove korake:

  1. Pronađite upit koji vas zanima u mreži tragova.
  2. Kliknite na red da biste odabrali događaj.
  3. Pogledajte kompletan tekst upita u donjoj ploči.
  4. pritisnuti Ctrl + A da biste odabrali sav tekst upita.
  5. pritisnuti Ctrl + C da kopirate tekst upita.
  6. Zalijepite upit u Management Studio za daljnju analizu.

Izdvoji SQL upit iz događaja praćenja.

Identifikujte problematične upite sortiranjem po kolonama performansi. Kliknite na zaglavlje kolone Trajanje da biste sortirali po vremenu izvršavanja. Najsporiji upiti se pojavljuju na vrhu ili dnu, ovisno o smjeru sortiranja. Slično tome, sortirajte po CPU-u, čitanju ili pisanju da biste identificirali operacije koje intenzivno koriste resurse.

Izvezite upite za testiranje kopiranjem iz prozora traga u prozore upita. Izmijenite izdvojene upite za testiranje strategija optimizacije. Uporedite planove izvršenja i metrike performansi između originalnih i optimizovanih verzija.

6.5 Korelacija događaja i razumijevanje toka izvršenja

Odnosi roditelj-dijete događaja pokazuju hijerarhije izvršavanja. SQL:BatchStarting događaji su nadređeni SQL:StmtStarting događaji, koji su zauzvrat nadređeni događaji izvršavanja procedura. Razumijevanje ovih odnosa pomaže u praćenju kompletnih putanja izvršavanja kroz vaš kod.

Praćenje transakcija povezuje povezane događaje tokom vremena. Koristite SPID kolonu za grupiranje događaja po sesiji. Unutar sesije, događaji se odvijaju hronološkim redom, prikazujući redoslijed operacija. Ovaj prikaz otkriva kako različite operacije međusobno djeluju unutar transakcija.

Korelirajte događaje ispitivanjem vrijednosti dijeljenih kolona. Događaji s identičnim SPID-om dogodili su se u istoj sesiji. Događaji s istim nazivom aplikacije došli su iz iste aplikacije. Koristite ove korelacije za razumijevanje složenih scenarija izvršavanja.

7. Zajednički SQL Server Primjeri upotrebe profilera

7.1 Rješavanje problema s performansama

7.1.1 Identifikacija sporih upita

Snimite spore upite koristeći sljedeću konfiguraciju:

  1. Kreirajte novi trag koristeći TSQL predložak.
  2. U Izbor događaja kartica, potvrdi SQL:BatchCompleted i RPC: Završeno su odabrani.
  3. kliknite Filteri kolona.
  4. izabrati trajanje sa liste kolona.
  5. Unesite 1000000 u Veće ili jednako polje za hvatanje upita koji traju duže od 1 sekunde.
  6. kliknite OK i započnite trag.
  7. Pokrenite praćenje tokom perioda najveće upotrebe.
  8. Zaustavite praćenje i sortirajte po trajanju kako biste identificirali najsporije upite.

Analiza zasnovana na trajanju otkriva obrasce vremena izvršavanja. Sortirajte zabilježene događaje prema koloni Trajanje da biste prvo vidjeli operacije koje se najduže izvršavaju. Pregledajte kolonu TextData za ove događaje kako biste identificirali stvarne upite odgovorne za kašnjenja.

Upiti koji intenzivno koriste CPU i I/O zahtijevaju različite pristupe optimizaciji. Sortirajte po koloni CPU da biste pronašli upite koji zahtijevaju algoritamska poboljšanja. Sortirajte po kolonama Čitanja ili Pisanja da biste identificirali upite koji zahtijevaju I/O i kojima je korisno indeksiranje ili prepisivanje upita.

7.1.2 Detekcija blokiranja i zastoja

Konfigurirajte detekciju blokiranja slijedeći ove korake:

  1. Kreirajte novi trag.
  2. U Izbor događaja kartica, proširi Brave.
  3. izabrati Zaključavanje: Zaključavanje i Brava: Lanac sa zaštitnom bravom.
  4. Proširiti Greške i upozorenja.
  5. izabrati Izvještaj o blokiranom procesu.
  6. Uključi kolone: SPID, Tekstualni podaci, Naziv baze podataka, Korisničko ime.
  7. Pokrenite praćenje i pratite događaje zaključavanja.

Praćenje događaja zaključavanja otkriva probleme s konkurentnošću koji utiču na performanse aplikacije. Događaji zaključavanja: Zastoji ukazuju na to kada SQL Server otkrivene i riješene situacije zastoja. Zaključavanje: Lančani događaji zastoja prikazuju procese uključene u zastoje.

Grafikoni zastoja pružaju vizualne prikaze scenarija zastoja. Kada dođe do zastoja, kolona TextData sadrži XML koji opisuje zastoj. Kopirajte ovaj XML i otvorite ga u SQL Server Management Studio za pregled grafičkog dijagrama zastoja koji prikazuje koji su se procesi međusobno blokirali.

7.1.3 Pronalaženje nedostajućih indeksa

Zabilježite radno opterećenje za analizu indeksa koristeći ove korake:

  1. Kreirajte novi trag koristeći Tuning predložak.
  2. Konfigurišite trag za spremanje u datoteku.
  3. Pokrenite praćenje tokom reprezentativnih perioda radnog opterećenja.
  4. Sakupite barem nekoliko sati aktivnosti.
  5. Zaustavite praćenje i sačuvajte datoteku.
  6. Pokreni savjetnika za podešavanje mehanizma baze podataka.
  7. Odaberite datoteku praćenja kao izvor radnog opterećenja.
  8. Pokrenite analizu da biste dobili preporuke za indeks.

Integracija sa alatom Database Engine Tuning Advisor automatizira preporuke indeksa. Tuning Advisor analizira zabilježeno opterećenje i predlaže indekse koji bi poboljšali performanse. Pažljivo pregledajte preporuke prije implementacije, uzimajući u obzir troškove skladištenja i održavanja.

7.2 Rješavanje problema s aplikacijom

7.2.1 Otklanjanje grešaka u aplikaciji

Praćenje grešaka aplikacije pomoću ove konfiguracije:

  1. Kreirajte novi trag.
  2. Proširiti Greške i upozorenja na kartici Odabir događaja.
  3. izabrati Izuzetak, Poruka o grešci korisnika, I pažnja.
  4. Uključi kolone: Greška, Tekstualni podaci, Naziv aplikacije, SPID.
  5. Filtriraj po Naziv aplikacije da se fokusirate na svoju aplikaciju.
  6. Pokrenite praćenje i reproducirajte scenarij greške.
  7. Pregledajte zabilježene događaje grešaka za dijagnostičke informacije.

Praćenje grešaka otkriva detalje o izuzecima koji su često skriveni od aplikacija. Kolona Greška sadrži SQL Server brojevi grešaka. Kolona TextData prikazuje poruke o greškama i upit koji je uzrokovao grešku. Kolona Severity označava nivoe ozbiljnosti greške.

Praćenje izuzetaka bilježi probleme tokom izvođenja, uključujući kršenja ograničenja, greške u dozvolama i događaje isteka vremena. Povežite događaje grešaka s prethodnim događajima upita kako biste razumjeli šta je izazvalo izuzetke.

7.2.2 Praćenje komunikacije između aplikacije i baze podataka

Pratite aktivnost aplikacije slijedeći ove korake:

  1. Kreirajte novi trag koristeći standard predložak.
  2. kliknite Filteri kolona.
  3. izabrati Naziv aplikacije i unesite naziv vaše aplikacije u kao polje.
  4. Opcionalno filtrirajte po ime hosta da izoluje određene servere.
  5. Pokrenite praćenje tokom rada aplikacije.
  6. Pregledajte zabilježene događaje kako biste vidjeli sve interakcije s bazom podataka.

Filtriranje naziva aplikacija izoluje upite od određenih aplikacija. SQL Server postavlja naziv aplikacije iz nizova za povezivanje, što olakšava praćenje pojedinačnih aplikacija u okruženjima s više aplikacija. Provjerite da vaš niz za povezivanje uključuje parametar Naziv aplikacije za efikasno filtriranje.

Praćenje veze prikazuje životni ciklus sesije, uključujući prijavu, izvršavanje upita i odjavu. Pratite stope kreiranja veza kako biste identificirali probleme s grupiranjem veza. Prekomjerni odliv veza ukazuje na potencijalne probleme s konfiguracijom aplikacije.

7.2.3 Validacija ponašanja aplikacije

Provjerite očekivano ponašanje aplikacije pomoću analize tragova. Zabilježite sve operacije baze podataka tokom poslovne transakcije i provjerite da li se ispravni upiti izvršavaju u ispravnom redoslijedu. Uporedite stvarno zabilježene upite s očekivanim ponašanjem kako biste identificirali neslaganja.

Validacija parametara osigurava da aplikacije prosljeđuju ispravne vrijednosti pohranjenim procedurama i parametriziranim upitima. Pregledajte snimljeni tekst upita kako biste provjerili da li vrijednosti parametara odgovaraju očekivanjima. Netačni parametri često uzrokuju logičke greške koje se manifestiraju kao netačni poslovni rezultati.

7.3 Sigurnosna revizija

7.3.1 Praćenje pokušaja prijave

Konfigurišite praćenje prijave pomoću ovih koraka:

  1. Kreirajte novi trag.
  2. Proširiti Sigurnost revizije na kartici Odabir događaja.
  3. izabrati Prijava za reviziju, Odjava iz revizije, I Prijava za reviziju nije uspjela.
  4. Uključi kolone: Korisničko ime, ime hosta, Naziv aplikacije, Vrijeme početka.
  5. Pokrenite praćenje kako biste pratili aktivnost autentifikacije.
  6. Pregledajte neuspješne prijave zbog potencijalnih sigurnosnih problema.

Uspješne i neuspješne prijave pružaju sveobuhvatno praćenje autentifikacije. Događaji revizije prijave bilježe uspješne pokušaje autentifikacije s identitetom korisnika i informacijama o izvoru. Događaji neuspješne revizije prijave ukazuju na neuspješne pokušaje prijave koji mogu predstavljati napade ili probleme s konfiguracijom.

Praćenje autentifikacije otkriva obrasce u pristupu bazi podataka. Pratite učestalost prijave kako biste otkrili neobične aktivnosti. Više neuspjelih pokušaja prijave nakon kojih slijedi uspješna prijava mogu ukazivati ​​na kompromitirane vjerodajnice. Neuspješne prijave s neočekivanih lokacija zahtijevaju istragu.

7.3.2 Pristup podacima praćenja i njihove izmjene

Pratite pristup podacima koristeći ovu konfiguraciju:

  1. Kreirajte novi trag.
  2. Proširiti Sigurnost revizije.
  3. izabrati Pristup objektu baze podataka za reviziju.
  4. Uključi kolone: ObjectName, Korisničko ime, Tekstualni podaci, Naziv baze podataka.
  5. Filtriraj po ObjectName za praćenje specifičnih osjetljivih tabela.
  6. Pokrenite praćenje kako biste zabilježili pokušaje pristupa.

Praćenje SELECT, INSERT, UPDATE, DELETE omogućava sveobuhvatnu reviziju modifikacije podataka. Zabilježite SQL:BatchCompleted događaje s odgovarajućim filterima za praćenje svih operacija pristupa podacima. Filtrirajte po ObjectName ili TextData za fokusiranje na osjetljive tabele.

Pristup osjetljivim podacima zahtijeva pažljivo praćenje kako bi se osigurala usklađenost sa sigurnosnim politikama. Kreirajte tragove posebno za tabele koje sadrže lične podatke, finansijske podatke ili druge povjerljive informacije. Redovno pregledavajte obrasce pristupa kako biste identificirali neprimjeren pristup podacima.

7.3.3 Identifikacija neovlaštenih aktivnosti

Otkrijte sumnjive aktivnosti analizom obrazaca upita u snimljenim tragovima. Potražite neobične upite koji se ne podudaraju s normalnim ponašanjem aplikacije. SELECT naredbe bez WHERE klauzule koje preuzimaju cijele tabele mogu ukazivati ​​na pokušaje krađe podataka.

Pokušaji eskalacije privilegija pojavljuju se kao greške u dozvolama ili pokušaji izvršavanja administratorskih naredbi. Pratite upite koji pokušavaju pristupiti sistemskim tabelama, izmijeniti konfiguraciju servera ili kreirati privilegovane račune. Filtrirajte događaje grešaka i pregledajte kolonu TextData za sumnjive aktivnosti.

7.4 Planiranje kapaciteta i analiza radnog opterećenja

Utvrdite osnovne vrijednosti snimanjem reprezentativnog opterećenja tokom normalnog rada. Pokrenite praćenje tokom tipičnog radnog vremena kako biste razumjeli standardne obrasce aktivnosti. Sačuvajte ove tragove kao osnovne vrijednosti performansi za buduća poređenja.

Identifikacija vršnog opterećenja otkriva kada vaš sistem doživljava maksimalno opterećenje. Zabilježite tragove u različitim vremenskim periodima, uključujući radno vrijeme, prozore za grupnu obradu i aktivnosti nakon radnog vremena. Analizirajte broj događaja i potrošnju resursa kako biste identificirali periode vršnog opterećenja.

Obrasci korištenja resursa proizlaze iz analize radnog opterećenja. Grupirajte događaje po vremenskim intervalima kako biste vidjeli raspodjelu aktivnosti tokom dana. Izračunajte agregatne metrike CPU-a, diskovnih ulazno/izlaznih operacija i trajanja kako biste kvantificirali potrošnju resursa. Koristite ove podatke za planiranje nadogradnje kapaciteta ili identificiranje mogućnosti optimizacije.

8. Napredno SQL Server Tehnike profiliranja

8.1 Kreiranje tragova na strani servera pomoću T-SQL-a

8.1.1 Korištenje sp_trace_create i srodnih procedura

Kreirajte tragove na strani servera programski koristeći T-SQL pohranjene procedure. Ovaj pristup omogućava automatizirano kreiranje i upravljanje tragovima bez potrebe SQL Server Grafički interfejs Profilera.

Definirajte trag na strani servera koristeći ovaj primjer koda:

  1. Deklarišite varijable za ID traga i putanju datoteke.
  2. Pozovite sp_trace_create da biste kreirali novi trag.
  3. Koristite sp_trace_setevent za dodavanje događaja i kolona.
  4. Opcionalno koristite sp_trace_setfilter za konfigurisanje filtera.
  5. Pozovite sp_trace_setstatus da biste pokrenuli praćenje.

Procedura sp_trace_create inicijalizira novu definiciju traga. Navedite putanju izlazne datoteke, maksimalnu veličinu datoteke i opcije prebacivanja. Procedura vraća ID traga koji se koristi u narednim pozivima procedure za konfigurisanje traga.

Dodajte događaje pomoću procedure sp_trace_setevent. Navedite ID praćenja, ID događaja i ID kolone za svaku kombinaciju događaja i kolone koju želite snimiti. Pozovite ovu proceduru više puta da biste izgradili potpune konfiguracije praćenja.

Konfigurišite filtere pomoću procedure sp_trace_setfilter. Navedite ID traga, ID kolone, logički operator, operator poređenja i vrijednost filtera. Višestruki pozivi filtera se kombinuju kako bi se kreirali složeni kriterijumi filtera.

Pokrenite praćenje pozivanjem sp_trace_setstatus sa statusnom vrijednošću 1. Zaustavite praćenje pozivanjem iste procedure sa statusnom vrijednošću 0. Izbrišite definicije praćenja pozivanjem sa statusnom vrijednošću 2.

8.1.2 Prednosti tragova na strani servera

Smanjeno opterećenje klijenta čini tragove na strani servera idealnim za praćenje produkcije. Server baze podataka obrađuje sve operacije praćenja bez trošenja resursa klijentske mašine. Propusnost mreže se ne troši na prijenos događaja klijentskoj aplikaciji.

Automatsko izvršavanje omogućava prikupljanje tragova bez nadzora. Tragovi na strani servera nastavljaju se izvršavati nakon kreiranja čak i ako ne postoji veza s klijentom. Zakažite kreiranje tragova putem SQL Server Poslovi agenta za automatizirano praćenje.

Niži utjecaj na performanse rezultat je obrade na strani servera. Događaji se zapisuju direktno na disk bez dodatne serijalizacije ili mrežnog prijenosa. Upravljanje baferom optimizira I/O diska za bolje ukupne performanse.

8.2 Funkcionalnost ponavljanja traga

8.2.1 Snimanje tragova za reprodukciju

Kreirajte tragove spremne za ponovnu reprodukciju slijedeći ove korake:

  1. Kreirajte novi trag koristeći TSQL_Replay predložak.
  2. Provjerite jesu li odabrani svi potrebni događaji i kolone.
  3. Konfigurišite trag za spremanje u datoteku.
  4. Pokrenite praćenje tokom perioda radnog opterećenja koji želite snimiti.
  5. Zaustavite praćenje i sačuvajte datoteku.

Obavezni događaji i kolone osiguravaju potpunu reprodukciju traga. Predložak TSQL_Replay uključuje sve potrebne tipove događaja i kolone podataka. Nedostatak obaveznih elemenata sprječava uspješnu reprodukciju, stoga uvijek koristite ovaj predložak prilikom snimanja u svrhu reprodukcije.

8.2.2 Reprodukcija tragova

Ponovo reproducirajte snimljena radna opterećenja koristeći ove korake:

  1. In SQL Server Profiler, kliknite fajl -> otvoreno -> Datoteka traga.
  2. Odaberite datoteku traga spremnu za reprodukciju.
  3. kliknite Replay -> Start.
  4. Povežite se s ciljnim serverom u dijalogu za reprodukciju.
  5. Konfigurišite opcije reprodukcije, uključujući redoslijed i vrijeme reprodukcije.
  6. kliknite OK da biste započeli reprizu.
  7. Pratite napredak reprodukcije u prozoru statusa.

Opcije konfiguracije reprodukcije kontrolišu kako SQL Server Profiler reproducira snimljeno radno opterećenje. Ponovo reproducira događaje redoslijedom kojim su snimljeni kako bi se održali vremenski odnosi. Konfigurirajte želite li zadržati originalno vrijeme ili što brže reproducirati događaje.

8.2.3 Slučajevi upotrebe za reprodukciju traga

Testiranje opterećenja ima koristi od ponavljanja tragova reproducirajući realistična opterećenja. Snimite tragove produkcijskog opterećenja i ponovo ih reproducirajte na testnim sistemima kako biste provjerili performanse pod stvarnim obrascima korištenja. Prilagodite postavke konkurentnosti kako biste simulirali različite nivoe opterećenja.

Validacija migracije okruženja osigurava da novi sistemi mogu podnijeti postojeća radna opterećenja. Snimite tragove iz trenutnih produkcijskih sistema i reproducirajte ih na novom hardveru ili ažuriranom. SQL Server verzije. Uporedite metrike performansi kako biste provjerili da migracije neće smanjiti performanse.

Scenariji testiranja uključuju regresivno testiranje nakon promjena koda, validaciju promjena optimizatora u SQL Server verzije i konfiguracije hardvera za testiranje opterećenja. Replay pruža konzistentna, ponovljiva opterećenja za pouzdano testiranje.

8.3 Integracija SQL Profilera sa savjetnikom za podešavanje mehanizma baze podataka

Kreirajte datoteke radnog opterećenja za Database Engine Tuning Advisor snimanjem tragova s ​​odgovarajućim događajima. Koristite predložak za podešavanje kako biste osigurali da su sve potrebne informacije snimljene za analizu.

Pokrenite Database Engine Tuning Advisor i odaberite datoteku praćenja kao izvor radnog opterećenja. Savjetnik analizira snimljene upite i preporučuje indekse, indeksirane prikaze ili strategije particioniranja koje bi poboljšale performanse.

Radni tok optimizacije performansi integriše snimanje tragova sa analizom podešavanja. Zabilježite reprezentativna radna opterećenja tokom normalnog rada, analizirajte pomoću Tuning Advisora, pregledajte preporuke, testirajte predložene promjene u razvoju i konačno implementirajte odobrene promjene u produkciji.

8.4 Automatizacija prikupljanja tragova

Zakazivanje tragova pomoću SQL Server Agenti za automatsko prikupljanje podataka. Kreirajte T-SQL skripte koje definiraju tragove na strani servera koristeći procedure sp_trace. Zakažite pokretanje ovih skripti u određeno vrijeme ili intervalima.

PowerShell automatizacija omogućava sofisticirane scenarije upravljanja tragovima. Pišite PowerShell skripte koje kreiraju tragove, prate njihov status i obrađuju prikupljene podatke. Zakažite PowerShell skripte putem Planera zadataka ili SQL Server Agente.

SQL Server Poslovi agenta omogućavaju pouzdano planirano izvršavanje. Kreirajte poslove koji pokreću tragove na početku perioda praćenja i zaustavljaju tragove nakon što se prikupljanje podataka završi. Konfigurišite obavještenja o poslovima kako biste upozorili administratore na greške.

8.5 Programsko analiziranje tragova

Čitajte datoteke praćenja pomoću T-SQL-a koristeći funkciju fn_trace_gettable. Ova funkcija, koja vraća tabelarne vrijednosti, analizira datoteke praćenja i vraća podatke o događajima kao skup rezultata. Upitujte ove podatke koristeći standardni T-SQL za izvođenje prilagođene analize.

Prilagođene skripte za analizu omogućavaju automatsku obradu tragova. Pišite upite koji izračunavaju agregirane statistike, identificiraju obrasce ili označavaju anomalije. Zakažite automatsko pokretanje ovih skripti nakon što se završi prikupljanje tragova.

Generirajte izvještaje upitima o podacima praćenja pohranjenim u tabelama. Kreirajte prikaze koji agregiraju događaje po vremenskom periodu, korisniku ili aplikaciji. Izgradite rješenja za izvještavanje koja pružaju redovne uvide u aktivnost i performanse baze podataka.

9. SQL Server Najbolje prakse za profilere

9.1 Najbolje prakse za postizanje rezultata

9.1.1 Minimiziranje opterećenja tragovima

Odaberite samo neophodne događaje kako biste smanjili opterećenje praćenja. Svaka dodatna vrsta događaja povećava količinu podataka koju mehanizam za praćenje mora obraditi. Pregledajte svoje ciljeve praćenja i uključite samo događaje koji su direktno relevantni za te ciljeve.

Koristite filtere efikasno kako biste spriječili prikupljanje nebitnih podataka. Filtrirajte po Nazivu Baze Podataka (BaseDatabaseName) da biste isključili sistemske baze podataka. Filtrirajte po Trajanju (Termination) da biste prikupili samo spore upite. Filtrirajte po Nazivu Aplikacije (ApplicationName) da biste se fokusirali na određene aplikacije. Pravilno filtriranje dramatično smanjuje opterećenje praćenjem.

Razmatranja na strani servera u odnosu na klijenta utiču na uticaj na performanse. Tragovi na strani servera zapisuju podatke direktno na disk uz minimalno opterećenje. Tragovi na strani klijenta prenose događaje preko mreže do Profiler interfejsa, dodajući latenciju i potrošnju propusnog opsega. Koristite tragove na strani servera za praćenje produkcije.

9.1.2 Optimizacija pohrane tragova

Upravljanje veličinom datoteka sprječava iscrpljivanje prostora na disku. Postavite maksimalna ograničenja veličine datoteka u skladu s dostupnom pohranom. Omogućite prebacivanje datoteka kako biste kreirali više datoteka umjesto beskonačnog rasta jedne datoteke. Pratite prostor na disku tokom izvršavanja praćenja.

Pohranjivanje u tabelama naspram pohranjivanja u datoteke podrazumijeva različite kompromise u performansama. Pohranjivanje u datoteke nudi bolje performanse tokom izvršavanja praćenja jer zaobilazi mehanizam za pohranjivanje. Pohranjivanje u tabelama omogućava T-SQL upite nad podacima praćenja, ali dodaje troškove pisanja. Odaberite vrstu pohranjivanja na osnovu vaših zahtjeva za analizu.

9.2 Najbolje sigurnosne prakse

Upravljanje dozvolama kontrolira ko može kreirati i pokretati tragove. Dozvolu ALTER TRACE dodijelite samo pouzdanim korisnicima kojima su potrebne mogućnosti praćenja. Članovi uloge administratora sistema imaju neograničen pristup praćenju. Redovno pregledavajte i revidirajte dozvole za praćenje.

Zaštita osjetljivih podataka zahtijeva pažljivu konfiguraciju praćenja. Izbjegavajte snimanje punog teksta upita kada radite s osjetljivim podacima. Razmislite o filtriranju ili šifriranju izlaza praćenja koji sadrži povjerljive informacije. Pohranite datoteke praćenja na sigurnim lokacijama s odgovarajućim kontrolama pristupa.

Sigurnost datoteka praćenja sprječava neovlašteni pristup snimljenim podacima. Postavite dozvole za datoteke kako biste ograničili pristup datotekama praćenja. Šifrirajte datoteke praćenja ako sadrže osjetljive informacije. Izbrišite datoteke praćenja nakon završetka analize kako biste smanjili rizik od izlaganja.

9.3 Razmatranja produkcijskog okruženja

9.3.1 Kada koristiti Profiler u produkciji

Procjena rizika određuje kada SQL Server Profiler je prikladan za produkcijsku upotrebu. Profiler uvodi mjerljivo opterećenje koje se povećava s opsegom praćenja. Prije pokretanja praćenja u produkciji, procijenite da li dijagnostička vrijednost opravdava utjecaj na performanse.

Konfiguracije minimalnog utjecaja omogućavaju sigurnije praćenje produkcije. Koristite visoko selektivne filtere za hvatanje samo kritičnih događaja. Postavite pragove trajanja kako biste zanemarili brzo izvršavajuće upite. Ograničite trajanje praćenja na kratke periode tokom sesija rješavanja problema. Konfigurirajte praćenja na strani servera kako biste smanjili opterećenje klijenta.

9.3.2 Alternative za praćenje proizvodnje

Prošireni događaji pružaju niže opterećenje za praćenje proizvodnje. Ova moderna tehnologija nudi bolje performanse i fleksibilnost od SQL Server Profiler. Migrirajte rješenja za praćenje na proširene događaje za dugoročnu upotrebu u produkciji.

Query Store automatski bilježi podatke o performansama upita bez ručne konfiguracije praćenja. Omogućite Query Store na produkcijskim bazama podataka da biste pratili statistiku izvršavanja upita tokom vremena. Query Store pruža većinu mogućnosti praćenja performansi bez dodatnog trošenja praćenja.

Dinamički prikazi upravljanja nude lagano praćenje za specifične scenarije. DMV-ovi pružaju informacije o trenutnom stanju bez bilježenja historijskih događaja. Periodično upitujte DMV-ove kako biste pratili stanje servera bez opterećenja kontinuiranog praćenja.

9.4 Najbolje prakse upravljanja tragovima

Konvencije imenovanja osiguravaju da su datoteke praćenja prepoznatljive i organizirane. U nazive datoteka praćenja uključite datum, vrijeme, naziv servera i svrhu. Koristite dosljedne obrasce imenovanja u svim tragovima kako biste olakšali upravljanje i analizu.

Dokumentacija bilježi konfiguraciju i svrhu praćenja. Dokumentujte koje ste događaje zabilježili, zašto ste kreirali praćenje i šta ste naučili iz analize. Vodite evidenciju praćenja pokrenutog na produkcijskim sistemima radi usklađenosti i rješavanja problema.

Politike zadržavanja sprječavaju prekomjerno akumuliranje datoteka praćenja. Definirajte koliko dugo datoteke praćenja trebaju biti zadržane na osnovu poslovnih zahtjeva i kapaciteta pohrane. Automatizirajte brisanje starih datoteka praćenja kako biste oslobodili prostor na disku. Arhivirajte važne tragove na dugoročno skladištenje prije brisanja.

9.5 uobičajenih grešaka koje treba izbjegavati

Prekomjerno praćenje uzrokuje prekomjerno opterećenje performansi i generira neupravljive količine podataka. Izbjegavajte snimanje svih događaja bez filtera. Počnite s uskim, fokusiranim tragovima i proširite opseg samo kada je to potrebno. Više podataka nije uvijek bolje za učinkovito rješavanje problema.

Zaboravljanje zaustavljanja tragova troši resurse i puni prostor na disku. Uvijek zaustavite tragove kada je praćenje završeno. Postavite ograničenja trajanja tragova ili maksimalne veličine datoteka kako biste spriječili nekontrolirano prenošenje tragova. Redovno pratite pokrenute tragove i zaustavljajte neaktivne ili nepotrebne tragove.

Ignorisanje optimizacije filtera dovodi do loših performansi i teške analize. Uložite vrijeme u konfigurisanje efikasnih filtera prije pokretanja praćenja. Testirajte filtere u razvojnim okruženjima kako biste provjerili da li obuhvataju očekivane podatke. Pregledajte i precizirajte filtere na osnovu dobijenih rezultata.

10. Alternative za SQL Server Profiler u 2025. godini

10.1 Prošireni događaji: Moderna zamjena

10.1.1 Šta su prošireni događaji

Prošireni događaji predstavljaju SQL Servermoderna arhitektura za obradu događaja. Microsoft je dizajnirao ovaj sistem posebno za rješavanje SQL Server Ograničenja Profilera uključuju opterećenje performansama i fleksibilnost konfiguracije. Prošireni događaji pružaju sveobuhvatne mogućnosti praćenja sa značajno nižom potrošnjom resursa.

Arhitektura i prednosti razlikuju proširene događaje od starijih tehnologija praćenja. Mehanizam događaja se duboko integrira u SQL ServerOsnovna arhitektura, koja bilježi događaje uz minimalne troškove. Asinhrono baferovanje događaja sprečava da praćenje blokira operacije baze podataka. Fleksibilne opcije ciljanja omogućavaju različite konfiguracije izlaza.

Prednosti u performansama čine proširene događaje idealnim za praćenje proizvodnje. Mjerila pokazuju da prošireni događaji uvode 50-90% manje režijske troškove od ekvivalentnih sistema. SQL Server Tragovi profilera. Arhitektura se bolje skalira s velikim obimom događaja i podržava više istovremenih sesija praćenja.

10.1.2 Migracija sa Profilera na Proširene događaje

Mapiranje događaja se prevodi SQL Server Događaji Profilera u ekvivalente proširenih događaja. Većina događaja Profilera ima odgovarajuće ekvivalente proširenih događaja. Microsoft pruža dokumentaciju koja mapira uobičajene događaje između dva sistema.

Kreiranje sesije u Extended Events zahtijeva učenje nove sintakse i koncepata. Definirajte sesije događaja pomoću T-SQL CREATE EVENT SESSION naredbi ili grafičkog interfejsa Extended Events u Management Studiju. Sesije određuju koje događaje treba snimiti, koje podatke treba prikupljati i gdje treba pohraniti rezultate.

10.1.3 Prošireni alati i interfejsi za događaje

SSMS Extended Events UI omogućava grafičko upravljanje sesijama. Pristupite proširenim događajima putem mape Management u Object Exploreru. Kreirajte, mijenjajte i pratite sesije događaja putem interfejsa. Pregledajte snimljene podatke u grafičkim formatima, uključujući mreže i grafikone.

Upravljanje T-SQL sesijama omogućava programsku kontrolu proširenih događaja. Napišite CREATE EVENT SESSION naredbe za definiranje sesija u kodu. Koristite ALTER EVENT SESSION za izmjenu pokrenutih sesija. Izbrišite sesije pomoću DROP EVENT SESSION. Ovaj pristup olakšava automatizirana rješenja za praćenje.

10.2 SQL Server Prodavnica upita

Query Store automatski prikuplja podatke o performansama upita za baze podataka gdje je omogućen. Ova funkcija prati planove upita, statistiku izvršavanja i metrike performansi tokom vremena bez ručne konfiguracije praćenja. Query Store održava historijske podatke omogućavajući analizu trendova i otkrivanje regresije.

Praćenje performansi upita u realnom vremenu putem Query Store-a otkriva trenutno ponašanje sistema. Pogledajte nedavno izvršene upite, njihove planove izvršavanja i potrošnju resursa. Identifikujte upite sa sve većim trajanjem ili promjenjivim planovima izvršavanja koji mogu ukazivati ​​na probleme.

Analiza historijskih upita omogućava poređenje kroz vremenske periode. Query Store zadržava podatke o performansama tokom konfigurabilnih perioda zadržavanja. Uporedite trenutne performanse sa historijskim osnovnim vrijednostima kako biste identifikovali regresije. Analizirajte trendove performansi kako biste predvidjeli buduće potrebe za kapacitetom.

Koristite Query Store kada vam je potrebno automatsko, stalno praćenje performansi. Omogućite Query Store na produkcijskim bazama podataka kako biste kontinuirano pratili ponašanje upita. Query Store dopunjuje rješavanje problema na osnovu praćenja pružajući historijski kontekst za probleme s performansama.

10.3 Dinamički upravljački prikazi (DMV)

Lako praćenje putem DMV-ova pruža informacije o trenutnom stanju bez bilježenja historijskih događaja. DMV-ovi otkrivaju interne SQL Server statistike i metapodaci putem upitnih prikaza. Upiti DMV-ove koristeći standardne T-SQL SELECT naredbe.

Uobičajeni DMV upiti za praćenje performansi uključuju sys.dm_exec_query_stats za statistiku performansi upita, sys.dm_exec_requests za zahtjeve koji se trenutno izvršavaju i sys.dm_os_wait_stats za statistiku čekanja. Ovi prikazi pružaju uvid u stanje i aktivnost servera u određenom trenutku.

DMV-ovi dopunjuju praćenje zasnovano na tragovima pružajući metriku u realnom vremenu. Koristite DMV-ove za brze provjere ispravnosti i analizu trenutnog stanja. Kombinujte DMV upite sa podacima o tragovima za sveobuhvatne pristupe rješavanju problema.

10.4 Alati za praćenje trećih strana

Komercijalne alternative nude poboljšane mogućnosti praćenja iznad SQL ServerUgrađeni alati. Proizvodi dobavljača kao što su SolarWinds, Redgate i Quest pružaju sveobuhvatne funkcije praćenja, upozoravanja i analize. Ovi alati često kombiniraju više izvora podataka, uključujući tragove, DMV-ove i brojače performansi.

Poređenje karakteristika otkriva prednosti različitih pristupa praćenju. Alati trećih strana pružaju vrhunska korisnička sučelja, automatizirana upozorenja i historijsko praćenje trendova. SQL ServerUgrađeni alati nude nula dodatnih troškova i dublju integraciju. Procijenite alate na osnovu vaših specifičnih zahtjeva i budžeta.

10.5 Odabir pravog alata za vaše potrebe

Matrica odlučivanja pomaže u odabiru odgovarajućih alata za praćenje. Za ad-hoc rješavanje problema, SQL Server Profiler ostaje dostupan i efikasan. Za praćenje produkcije, Extended Events ili Query Store pružaju bolje performanse. Za sveobuhvatno praćenje preduzeća, rješenja trećih strana nude najviše funkcija.

Kriteriji za odabir alata uključuju opterećenje performansi, jednostavnost korištenja, zahtjeve za zadržavanje podataka i budžetska ograničenja. Prilikom odabira alata uzmite u obzir stručnost vašeg tima. Poznati alati omogućavaju brže rješavanje problema čak i ako novije alternative nude bolje funkcije.

Kombinujte više alata za sveobuhvatne strategije praćenja. Koristite Query Store za kontinuirano praćenje performansi, Extended Events za istraživanje specifičnih problema i DMV-ove za provjere ispravnosti u realnom vremenu. Ovaj slojeviti pristup pruža robusno praćenje bez prekomjernih opterećenja.

11. Otkrivanje problema SQL Server Problemi s profilerom

11.1 Uobičajeni problemi s povezivanjem

Greške autentifikacije sprečavaju SQL Server Profiler se ne povezuje sa ciljnim serverima. Provjerite da li koristite ispravne vjerodajnice za odabranu metodu autentifikacije. Za autentifikaciju u sistemu Windows potrebno je da vaš Windows račun ima odgovarajuće SQL Server dozvole. SQL Server Autentifikacija zahtijeva važeće SQL pristupne podatke.

Problemi s mrežnom povezivošću manifestiraju se kao greške isteka vremena ili prekidi veze. Provjerite SQL Server dozvoljava udaljene veze u svojoj konfiguraciji. Provjerite postavke zaštitnog zida koje dozvoljavaju promet na SQL Server's port. Testirajte osnovnu povezivost koristeći ping i telnet prije rješavanja problema specifičnih za Profiler.

11.2 Problemi s performansama Profilera

Sporo izvršavanje praćenja ukazuje na prekomjerno opterećenje konfiguracije praćenja. Pregledajte odabrane događaje i eliminirajte nepotrebne. Dodajte filtere kako biste smanjili broj zabilježenih događaja. Razmislite o korištenju praćenja na strani servera kako biste smanjili opterećenje obrade na strani klijenta.

Visoka potrošnja resursa utiče na oboje SQL Server i Profiler klijent. Pratite CPU i memoriju servera tokom izvršavanja praćenja. Ako su resursi servera ograničeni, povećajte selektivnost filtera ili smanjite trajanje snimanja. Problemi s resursima klijenta zahtijevaju zatvaranje drugih aplikacija ili nadogradnju hardvera klijenta.

11.3 Problemi s datotekama i tabelama praćenja

Oštećene datoteke tragova sprečavaju otvaranje u SQL Server Profiler. Oštećenje obično nastaje zbog nepažljivog prekida praćenja ili grešaka na disku. Pokušajte otvoriti datoteku u uređivaču teksta kako biste provjerili da li je potpuno oštećena. Ponekad se djelomični podaci mogu oporaviti uvozom u tabelu pomoću fn_trace_gettable.

Problemi s pristupom tabeli se javljaju prilikom pokušaja učitavanja tragova iz SQL Server tabele. Provjerite da li imate SELECT dozvolu za tabelu praćenja. Provjerite da li je tabela odbačena ili preimenovana. Provjerite da li se povezujete na ispravan server i bazu podataka koja sadrži tabelu praćenja.

11.4 Nedostajući događaji ili nepotpuni podaci

Pogrešna konfiguracija filtera uzrokuje da tragovi propuštaju očekivane događaje. Pažljivo pregledajte kriterije filtera kako biste bili sigurni da ne isključuju željene događaje. Testirajte filtere pokretanjem kratkih tragova i provjerom da li snimljeni podaci odgovaraju očekivanjima. Privremeno uklonite filtere kako biste utvrdili da li uzrokuju problem.

Prelijevanje bafera se javlja kada SQL Server Ne mogu dovoljno brzo zapisivati ​​podatke o tragovima da bih pratio generiranje događaja. Ovo se obično dešava sa nefiltriranim tragovima tokom visoke aktivnosti. Simptomi uključuju nedostajuće događaje ili upozorenja "Događaji nisu zabilježeni". Riješite problem dodavanjem filtera za smanjenje količine događaja ili povećanjem performansi ulazno/izlaznih operacija na disku za lokaciju datoteke tragova.

11.5 Padovi i greške Profilera

Uobičajene poruke o grešci uključuju „Nije moguće kreirati trag“ što ukazuje na probleme s dozvolama ili ograničenja resursa. Poruke „Trag je zaustavljen“ ukazuju na greške u praćenju na strani servera, moguće zbog stanja punog diska. Greške „Nevažeća definicija traga“ ukazuju na probleme s konfiguracijom.

Strategije rješavanja zavise od specifične greške. Greške u dozvolama zahtijevaju davanje dozvole ALTER TRACE korisniku. Greške u resursima zahtijevaju oslobođeni prostor na disku ili memoriju. Greške u konfiguraciji zahtijevaju pregled i ispravljanje postavki praćenja. Ponovo pokrenite SQL Server Profiler ako prestane reagirati.

12. Praktično SQL Server Scenariji i primjeri profilera

12.1 Scenarij 1: Identifikacija najsporijih upita u vašoj bazi podataka

Ovaj vodič demonstrira hvatanje i analizu sporih upita.

Konfigurišite trag slijedeći ove korake:

  1. lansiranje SQL Server Profiler i povežite se sa svojim ciljnim serverom.
  2. kliknite fajl -> Novi trag.
  3. Unesite "Analiza sporih upita" u Naziv traga polje.
  4. izabrati TSQL iz Koristite šablon ispustiti.
  5. kliknite Izbor događaja tab.
  6. kliknite Filteri kolona.
  7. izabrati trajanje i unesite 1000000 u Veće ili jednako.
  8. izabrati Naziv baze podataka i unesite naziv vaše baze podataka u kao.
  9. kliknite OK da zatvorite filtere.
  10. omogućiti Spremi u datoteku i navedite putanju do datoteke.
  11. kliknite trčanje da počnem sa snimanjem.

Pokrenite praćenje tokom vršnih radnih sati najmanje 30 minuta kako biste obuhvatili reprezentativno radno opterećenje. Zaustavite praćenje nakon što prikupite dovoljno podataka.

Analizirajte rezultate slijedeći ovaj postupak:

  1. kliknite trajanje zaglavlje kolone za sortiranje po vremenu izvršavanja.
  2. Identifikujte 10 najdugovječnijih upita.
  3. Za svaki upit, provjerite Tekstualni podaci kolona.
  4. Kopirajte tekst upita i zalijepite ga u Management Studio.
  5. upotreba Prikaži procijenjeni plan izvršenja da analizira upit.
  6. Potražite skeniranja tabela, nedostajuće indekse ili neefikasna spajanja.
  7. pregled CPU, Čita, I Piše kolone za obrasce potrošnje resursa.

12.2 Scenarij 2: Otklanjanje grešaka u slučaju zastoja

Ovaj primjer pokazuje kako uhvatiti i analizirati zastoje.

Konfigurišite praćenje zastoja pomoću ovih koraka:

  1. Kreirajte novi trag pod nazivom „Istraga zastoja“.
  2. kliknite Izbor događaja tab.
  3. kliknite Prikaži sve događaje.
  4. Proširiti Brave kategorija.
  5. izabrati Zaključavanje: Zaključavanje.
  6. izabrati Brava: Lanac sa zaštitnom bravom.
  7. Proširiti Greške i upozorenja kategorija.
  8. izabrati Izvještaj o blokiranom procesu.
  9. obezbijediti Tekstualni podaci kolona je odabrana.
  10. kliknite trčanje da započnemo praćenje.

Kada se tokom izvršavanja praćenja dogodi zastoj, događaj Lock:Deadlock se pojavljuje u tabeli praćenja.

Interpretirajte informacije o zastoju slijedeći ove korake:

  1. kliknite Zaključavanje: Zaključavanje red događaja.
  2. Pogledaj Tekstualni podaci kolona u donjem panelu.
  3. Kopirajte XML sadržaj iz TextData.
  4. Otvorite Management Studio i kreirajte novi prozor za upit.
  5. Zalijepite XML u prozor upita.
  6. Sačuvajte datoteku sa ekstenzijom .xdl.
  7. Otvorite .xdl datoteku u Management Studiju da biste vidjeli grafikon zastoja.
  8. Grafikon prikazuje uključene procese, zaključane resurse i odabranu žrtvu.
  9. Pregledajte upite iz oba procesa kako biste razumjeli konflikt.

Koraci rješavanja obično uključuju promjenu redoslijeda operacija u kodu aplikacije kako bi se resursima pristupilo u dosljednom redoslijedu, smanjenje opsega transakcija ili implementaciju odgovarajućih savjeta za zaključavanje.

12.3 Scenarij 3: Praćenje svih upita iz određene aplikacije

Ovaj scenario demonstrira praćenje upita specifičnog za aplikaciju.

Konfigurirajte praćenje specifično za aplikaciju pomoću ovih koraka:

  1. Kreirajte novi trag pod nazivom „Praćenje upita aplikacije“.
  2. Izaberite standard predložak.
  3. kliknite Izbor događaja tab.
  4. kliknite Filteri kolona.
  5. izabrati Naziv aplikacije.
  6. Unesite naziv vaše aplikacije u kao polje.
  7. Ako vaša aplikacija koristi grupisanje konekcija, možda će vam trebati podudaranje džoker znakova.
  8. kliknite OK da primenite filter.
  9. omogućiti Sačuvaj u tabelu radi lakšeg postavljanja upita.
  10. kliknite trčanje da počnem sa snimanjem.

Analiza obrazaca upita otkriva kako vaša aplikacija interaguje sa SQL Server:

  1. Nakon prikupljanja podataka, zaustavite praćenje.
  2. Otvorite Management Studio i povežite se sa serverom pomoću tabele praćenja.
  3. Upitajte tabelu tragova da biste analizirali obrasce.
  4. Prebrojite upite po tipu da biste vidjeli kombinaciju operacija.
  5. Identifikujte najčešće izvršavane upite.
  6. Potražite upite koji bi mogli biti keširani ili optimizirani.
  7. Provjerite ima li ponovljenih identičnih upita koji ukazuju na nedostatak grupiranja veza.

12.4 Scenarij 4: Revizija pristupa podacima radi usklađenosti

Ovaj primjer prikazuje kreiranje sigurnosne revizijske trage.

Konfigurišite sigurnosnu reviziju slijedeći ove korake:

  1. Kreirajte novi trag pod nazivom „Trag sigurnosne revizije“.
  2. kliknite Izbor događaja tab.
  3. kliknite Prikaži sve događaje.
  4. Proširiti Sigurnost revizije kategorija.
  5. izabrati Prijava za reviziju, Odjava iz revizije, Prijava za reviziju nije uspjela.
  6. izabrati Pristup objektu baze podataka za reviziju.
  7. Proširiti TSQL kategorija.
  8. izabrati SQL:BatchCompleted.
  9. kliknite Filteri kolona.
  10. Filtriraj po ObjectName za praćenje specifičnih osjetljivih tabela.
  11. omogućiti Sačuvaj u tabelu za dugoročno zadržavanje.
  12. Omogući praćenje na strani servera za operacije bez nadzora.
  13. kliknite trčanje da započnete reviziju.

Generišite izvještaje revizije upitom tabeli praćenja:

  1. Kreirajte upite koji sumiraju pristup po korisniku i vremenskom periodu.
  2. Identifikujte neobične obrasce pristupa ili aktivnosti nakon radnog vremena.
  3. Dokumentujte neuspješne pokušaje prijave za sigurnosnu provjeru.
  4. Izvezite podatke revizije u sisteme za izvještavanje radi dokumentacije o usklađenosti.
  5. Arhivirajte završene tragove revizije u skladu s pravilima zadržavanja.

12.5 Scenarij 5: Zabilježavanje radnog opterećenja za testiranje performansi

Ovaj scenario demonstrira snimanje radnog opterećenja u svrhu testiranja.

Kreirajte tragove spremne za ponovnu reprodukciju koristeći ove korake:

  1. Kreirajte novi trag pod nazivom „Snimanje radnog opterećenja“.
  2. izabrati TSQL_Replay iz padajućeg menija predložaka.
  3. Ovaj predložak uključuje sve potrebne događaje i kolone za reprodukciju.
  4. kliknite Izbor događaja tab.
  5. Primijenite filtere ako želite obuhvatiti određene segmente radnog opterećenja.
  6. omogućiti Spremi u datoteku.
  7. Navedite putanju do datoteke s dovoljno prostora na disku.
  8. Postavite odgovarajuća ograničenja veličine datoteke i omogućite prelazak mišem.
  9. kliknite trčanje da počnem sa snimanjem.

Snimanje tokom reprezentativnih poslovnih operacija. Za sveobuhvatno snimanje radnog opterećenja, pokrenite praćenje nekoliko sati pokrivajući različite obrasce aktivnosti. Zaustavite praćenje nakon prikupljanja dovoljno podataka.

Analiza radnog opterećenja otkriva obrasce ponašanja sistema:

  1. Otvorite snimljenu datoteku traga u SQL Server Profiler.
  2. Pregledajte distribuciju događaja po vrsti i vremenu.
  3. Izračunajte agregatne metrike potrošnje resursa.
  4. Identifikujte periode najveće aktivnosti i uska grla resursa.
  5. Koristite trag za analizu Savjetnika za podešavanje mehanizma baze podataka.
  6. Ponovo reproducirajte trag na testnim sistemima kako biste potvrdili promjene.

13. Detekcija korupcije u bazi podataka pomoću SQL Server Profiler

13.1 Korišćenje SQL Server Profiler za rane znakove upozorenja na korupciju

Korupcija baze podataka predstavlja jednu od najozbiljnijih prijetnji integritetu podataka i pouzdanosti sistema. Dok SQL Server Profiler nije namjenski alat za otkrivanje korupcije, već može uhvatiti kritične znakove upozorenja koji ukazuju na potencijalne probleme s korupcijom koji zahtijevaju hitnu istragu.

13.2 Kritične greške koje ukazuju na potencijalnu korupciju

  • Greške stepena ozbiljnosti 24 (823, 824, 825): Kvarovi hardvera i medija.
  • Greška 605: Neuspjeli pokušaji preuzimanja stranice
  • Greške 8928 i 8929: Oštećenje objekta

13.3 Sumnjiva ponašanja baze podataka i obrasci upozorenja

  • Ponovljena isteka vremena upita na određenim objektima
  • Kršenja pristupa i rušenja aplikacija
  • Neobično grupiranje grešaka

13.4 Pokretanje DBCC CHECKDB naredbe na osnovu nalaza Profilera

If SQL Server Ako Profiler pronađe sumnjive greške, možete koristiti DBCC CHECKDB za potpunu provjeru baze podataka. Zatim izvršite popravku ako se potvrde greške. Napisali smo sveobuhvatan vodič o tome kako izvršiti ove zadatke.

Ako DBCC CHECKDB ne uspije popraviti bazu podataka, oštećenja su ozbiljna. U takvom slučaju možete pribjeći alat za oporavak SQL-a treće strane.

14. Česta pitanja

P: Da SQL Server Profiler je i dalje podržan u SQL Server 2022?

O: Da, SQL Server Profiler je i dalje uključen u SQL Server 2022 i SQL Server Management Studio, uprkos tome što je zastario od SQL Server 2016. Microsoft nastavlja isporučivati ​​alat s trenutnim verzijama, ali preporučuje migraciju na proširene događaje za nove implementacije praćenja. Alat ostaje funkcionalan i široko se koristi za rješavanje problema i ad-hoc analizu.

P: Koja je razlika između? SQL Server Profiler i SQL praćenje?

A: SQL Server Profiler je alat za grafički korisnički interfejs koji se povezuje sa SQL Trace mehanizmom koji radi unutar SQL ServerSQL Trace je osnovna tehnologija koja zapravo bilježi događaje. Tragove možete kreirati pomoću Profilerovog interfejsa ili direktno putem T-SQL pohranjenih procedura kao što je sp_trace_create. Profiler pruža lakšu konfiguraciju, dok T-SQL tragovi nude više mogućnosti automatizacije.

P: Koliko opterećenja performansama SQL Server Dodavanje profilera?

A: Utjecaj na performanse varira ovisno o konfiguraciji praćenja. Dobro filtrirano praćenje koje bilježi samo određene događaje može dodati 1-5% opterećenja. Loše konfigurirano praćenje bez filtera može dodati 20-50% ili više opterećenja, posebno na prometnim sistemima. Praćenja na strani servera imaju manji utjecaj od praćenja na strani klijenta. Uvijek koristite filtere kako biste smanjili broj događaja i prvo testirajte praćenje u okruženjima koja nisu u produkciji.

P: Mogu li trčati SQL Server Profiler na produkcijskim serverima?

O: Možete trčati SQL Server Koristite profiler na produkcijskim serverima, ali budite oprezni. Koristite visoko selektivne filtere, ograničite trajanje praćenja i preferirajte praćenja na strani servera kako biste smanjili utjecaj. Pokrenite produkcijska praćenja tokom perioda niske aktivnosti kada je to moguće. Za kontinuirano praćenje produkcije, razmislite o proširenim događajima ili pohrani upita, jer nude niže opterećenje.

P: Koje dozvole su mi potrebne za korištenje SQL Server Profiler?

A: Potrebna vam je dozvola ALTER TRACE za kreiranje i pokretanje tragova. Članovi fiksne serverske uloge sysadmin automatski imaju ovu dozvolu. Za korisnike koji nisu sysadmin, eksplicitno dodijelite dozvolu ALTER TRACE. Osim toga, potrebne su vam odgovarajuće dozvole za spremanje podataka o tragovima u datoteke ili tabele na osnovu vaše konfiguracije.

P: Zašto ne mogu vidjeti sve događaje u svom tragu?

A: Nedostatak događaja obično je rezultat previše restriktivnih filtera ili prepunjenja bafera. Pregledajte konfiguraciju filtera kako biste bili sigurni da ne isključuje željene događaje. Prepunjenje bafera se javlja kada SQL Server Ne mogu dovoljno brzo zapisivati ​​događaje, obično s nefiltriranim tragovima na zauzetim sistemima. Dodajte filtere da biste smanjili količinu događaja ili povećali performanse diska. Provjerite poruke o greškama koje ukazuju da događaji nisu zabilježeni.

P: Kako da prikupim informacije o zastoju sa SQL Server Profiler?

A: Kreirajte trag koji uključuje događaje Lock:Deadlock i Lock:Deadlock Chain iz kategorije Locks. Provjerite je li odabrana kolona TextData, jer ona sadrži XML grafa zastoja. Kada dođe do zastoja, kopirajte XML iz kolone TextData, sačuvajte ga s ekstenzijom .xdl i otvorite ga u SQL Server Management Studio za prikaz grafičkog dijagrama zastoja.

P: Koja je razlika između spremanja tragova u datoteke i u tabele?

A: Datoteke nude bolje performanse tokom izvršavanja praćenja jer zaobilaze SQL Server mehanizam za pohranu. Tragovi datoteka zapisuju podatke direktno na disk uz minimalno opterećenje. Tragovi tablica zapisuju kroz mehanizam za pohranu, dodajući opterećenje, ali omogućavajući trenutne T-SQL upite prema podacima praćenja. Koristite datoteke za scenarije osjetljive na performanse i tablice kada trebate odmah upitati podatke tokom ili nakon snimanja.

P: Mogu li automatizirati SQL Server Prikupljanje tragova profilera?

A: Da, automatizirajte prikupljanje tragova pomoću tragova na strani servera kreiranih pomoću T-SQL pohranjenih procedura. Napišite skripte koristeći sp_trace_create i srodne procedure, a zatim ih zakažite. SQL Server Poslovi agenta. Ovaj pristup omogućava prikupljanje tragova bez nadzora prema određenim rasporedima. PowerShell skripte pružaju još jednu opciju automatizacije za složenije scenarije.

P: Koliko dugo trebam provoditi praćenje?

A: Trajanje praćenja zavisi od vaših ciljeva. Za rješavanje specifičnih problema, pokrenite praćenje dok reproducirate problem, obično 5-30 minuta. Za analizu performansi, snimite najmanje jedan sat tokom perioda najveće aktivnosti. Za analizu opterećenja ili planiranje kapaciteta, prikupite nekoliko sati u različitim vremenskim periodima. Uvijek zaustavite praćenje kada je praćenje završeno kako biste oslobodili resurse.

P: Šta trebam učiniti ako moja datoteka praćenja postane prevelika?

A: Omogućite prebacivanje datoteka u svojstvima traga kako biste kreirali više manjih datoteka umjesto jedne velike datoteke. Postavite maksimalnu veličinu datoteke koja odgovara vašem prostoru na disku i potrebama analize. Koristite filtere za smanjenje količine snimljenih događaja. Za velike tragove, razmislite o analizi podataka u segmentima umjesto da učitavate cijeli trag odjednom. Redovno arhivirajte ili brišite stare datoteke traga kako biste upravljali prostorom na disku.

P: Kako da pronađem upite koji uzrokuju veliko korištenje CPU-a?

A: Kreirajte trag sa SQL:BatchCompleted i RPC:Completed događajima. Uključite kolone CPU, Duration i TextData. Filtrirajte po Duration da biste uhvatili samo upite koji prelaze prag kao što je 1000 milisekundi. Nakon prikupljanja podataka, sortirajte po koloni CPU u opadajućem redoslijedu. Upiti na vrhu troše najviše procesorskog vremena. Pregledajte ove upite za mogućnosti optimizacije kao što su nedostajući indeksi ili neefikasna logika.

P: Može SQL Server Planovi izvršavanja upita za hvatanje profilera?

A: SQL Server Profiler može prikupiti informacije o planu izvršenja putem događaja Showplan XML u kategoriji Performanse. Odaberite događaje Showplan XML ili Showplan XML Statistics Profile da biste prikupili kompletne planove izvršenja. Kolona TextData sadrži XML podatke plana. Međutim, za rutinsku analizu plana izvršenja, SQL Server Funkcije grafičkog plana izvršenja u Management Studiju ili Query Store pružaju lakše alternative.

P: Koji je najbolji predložak za početak općeg praćenja?

A: Standardni predložak pruža dobru početnu tačku za opće praćenje. Uključuje uobičajene događaje izvršavanja upita, pozive pohranjenih procedura i praćenje grešaka s uravnoteženim opterećenjem. Za praćenje s manjim utjecajem usmjereno na performanse upita, koristite TSQL predložak. Prilagodite predloške na osnovu vaših specifičnih potreba dodavanjem filtera i podešavanjem odabira događaja nakon što shvatite osnove.

P: Kako mogu pratiti samo određenu aplikaciju ili korisnika?

A: Koristite filtere kolona za izolaciju određenih aplikacija ili korisnika. Za aplikacije filtrirajte po koloni ApplicationName koristeći ime navedeno u vašem nizu za povezivanje. Za korisnike filtrirajte po koloni LoginName sa SQL Server prijavno ime ili ime Windows računa. Kombinirajte više filtera za dodatno sužavanje fokusa, kao što je filtriranje i po nazivu aplikacije i po nazivu baze podataka za praćenje aktivnosti jedne aplikacije u određenoj bazi podataka.

15. Zaključak i sljedeći koraci

15.1 Ključni za poneti

SQL Server Profiler ostaje vrijedan alat za rješavanje problema s ad-hoc bazama podataka uprkos svom zastarjelom statusu. Jednostavan interfejs i sveobuhvatno snimanje događaja čine ga idealnim za brze dijagnostičke sesije kada su vam potrebni trenutni rezultati. Koristite Profiler za rješavanje specifičnih problema, analizu ponašanja aplikacija i sigurnosnu reviziju.

Najbolje prakse uključuju agresivno korištenje filtera kako bi se smanjio utjecaj na performanse, preferiranje tragova na strani servera za produkcijska okruženja i ograničavanje trajanja tragova na neophodne periode. Odaberite samo bitne događaje i kolone kako biste smanjili opterećenje. Sačuvajte tragove u datoteke umjesto u tabele radi boljih performansi tokom snimanja.

15.2 Napredak: Prihvatanje modernih alata

Prelazak sa SQL Server Profiler na Extended Events za dugoročna rješenja za praćenje. Dok Profiler ostaje funkcionalan, ulaganje vremena u učenje Extended Events vas pozicionira za budućnost SQL Server verzije. Počnite s jednostavnim sesijama proširenih događaja koje repliciraju vaše uobičajene tragove Profilera.

Omogućite Query Store na produkcijskim bazama podataka kako biste dobili automatsko praćenje performansi bez ručne konfiguracije praćenja. Query Store kontinuirano bilježi planove upita i statistiku izvršavanja, pružajući osnovne podatke za analizu performansi. Kombinujte Query Store sa ciljanim sesijama proširenih događaja za sveobuhvatno praćenje.

15.3 Dodatni resursi

Sljedeći resursi će vam pomoći da produbite svoje SQL Server Znanje o profilerima i praćenje najboljih praksi praćenja:

Zvanična Microsoft dokumentacija

Resursi zajednice

  • SQL Server Central – Članci, forumi i skripte za profesionalce u oblasti baza podataka
  • Stack Overflow SQL Server Oznaka – Pitanja i odgovori zajednice za specifična pitanja o rješavanju problema
  • Reddit r/SQLServer – Forum za diskusiju o SQL Server teme i savjeti
  • Forumi SQLServerCentral.com – Aktivne diskusije zajednice o profiliranju i performansama
  • MSDN SQL Server Forumi – Forumi za podršku zajednice koje hostuje Microsoft

Blogovi i tehnički članci

  • SQL Server Performance Monitor – Namjenski sadržaj za praćenje performansi i optimizaciju
  • Brent Ozar Unlimited Blog – Najbolje prakse za podešavanje i praćenje performansi
  • SQLSkills.com – Stručni nivo SQL Server sadržaj od vodećih u industriji
  • Microsoft SQL Server Blog – Zvanična ažuriranja proizvoda i najave funkcija
  • Jednostavan razgovor – Praktičan SQL Server tutorijali i studije slučaja

Obuka i certifikacija

Knjige

  • SQL Server Podešavanje performansi upita – Sveobuhvatni vodič za optimizaciju performansi
  • za SQL Server Unutrašnjost – Detaljna analiza SQL Server arhitektura
  • SQL Server Planovi izvršenja – Razumijevanje optimizacije upita
  • Stručno indeksiranje performansi za SQL Server – Dizajn i optimizacija indeksa
  • SQL Server Napredno rješavanje problema i podešavanje performansi – Napredne dijagnostičke tehnike

Alati i uslužni programi

  • SQL Server Management Studio – Primarni interfejs za SQL Server Profiler
  • Azure DataStudio – Moderni alat za baze podataka za više platformi
  • sp_WhoIsActive – Popularna pohranjena procedura za praćenje koju je kreirala zajednica
  • SQL Sentry Plan Explorer – Besplatni alat za analizu plana izvršenja
  • DBForge Studio – Treća strana SQL Server alat za razvoj i administraciju

o autoru

Yuan Sheng je viši administrator baze podataka (DBA) sa preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka u preduzećima. Uspješno je riješio stotine scenarija oporavka baza podataka u organizacijama finansijskih usluga, zdravstva i proizvodnje.

Yuan je specijaliziran za SQL Server oporavak baze podataka, rješenja visoke dostupnostii optimizaciju performansi. Njegovo opsežno praktično iskustvo uključuje upravljanje bazama podataka od više terabajta, implementaciju Grupe dostupnosti uvijek uključenei razvoj automatiziranih strategija za izradu sigurnosnih kopija i oporavak podataka za poslovne sisteme od kritične važnosti.

Svojim tehničkim znanjem i praktičnim pristupom, Yuan se fokusira na kreiranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima da riješe složene probleme. SQL Server efikasno rješava izazove. On prati najnovije SQL Server izdanja i Microsoftove tehnologije baza podataka koje se razvijaju, redovno testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.

Imate pitanja o SQL Server oporavak ili vam trebaju dodatne smjernice za rješavanje problema s bazom podataka? Yuan pozdravlja povratne informacije i prijedlozi za poboljšanje ovih tehničkih resursa.

Podijeli sada: