Podijeli sada:

 

Pregled sadržaja sakriti

1. Uvod u SQL Server Profiler

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

SQL Server Profiler je alat s grafičkim korisničkim sučeljem za praćenje i bilježenje događaja koji se događaju unutar SQL ServerOvaj moćan dijagnostički alat omogućuje administratorima baza podataka i programerima da u stvarnom vremenu prate aktivnost mehanizma baze podataka, pomažući u prepoznavanju uskih grla u performansama, rješavanju problema s aplikacijama i reviziji sigurnosnih događaja.

SQL Server Profiler

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

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

1.3 Tko bi trebao koristiti ovaj vodič

  • Ovaj vodič služi administratorima baza podataka kojima je potrebno pratiti SQL Server instance, dijagnosticirati probleme s performansama i osigurati pouzdanost sustava. DBA-ovi će pronaći praktične smjernice za hvatanje tragova, analizu događaja i implementaciju strategija praćenja.
  • Razvojni programeri aplikacija imaju koristi od razumijevanja kako njihov kod komunicira s SQL ServerSQL Profiler pomaže programerima da identificiraju neučinkovite upite, provjere ponašanje aplikacije i otklone pogreške povezane s bazom podataka.
  • Analitičari i konzultanti za performanse otkrit će napredne tehnike za analizu opterećenja, planiranje kapaciteta i optimizaciju sustava. Sveobuhvatna pokrivenost konfiguracije praćenja, filtriranja i analize omogućuje temeljite procjene performansi baze podataka.

2. Razumijevanje SQL Server Osnove profilera

2.1 Kako SQL Server Profiler Works

SQL Server Profiler radi kao klijentska aplikacija koja se povezuje s SQL Trace mehanizmom koji se izvršava unutar SQL ServerKada kreirate trag, mehanizam baze podataka prati određene događaje i bilježi ih prema vašoj konfiguraciji. Mehanizam za praćenje prikuplja podatke o događajima s minimalnim utjecajem na performanse poslužitelja kada je pravilno konfiguriran.

Temeljna infrastruktura SQL Tracea koristi lagane kuke za 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 sučelju Profilera ili ih pohranjuje u datoteku ili tablicu. Ova arhitektura omogućuje fleksibilno prikupljanje podataka bez mijenjanja koda aplikacije.

2.2 Ključni koncepti i terminologija

Događaji 2.2.1

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 sustava. 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 te pogreške i upozorenja za praćenje iznimki. Odabir odgovarajućih događaja određuje koje informacije vaš trag bilježi i izravno utječe na korisnost i opterećenje performansi traga.

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

2.2.2 Stupci podataka

Stupci podataka definiraju koje informacije praćenje bilježi za svaki događaj. Uobičajeni stupci 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.

Bitni stupci razlikuju se ovisno o slučaju upotrebe. Rješavanje problema s performansama obično zahtijeva stupce Duration (Trajanje), CPU (CPU), Reads (Čitanja) i Writes (Zapisivanja). Sigurnosna revizija zahtijeva stupce LoginName (Naziv prijave), DatabaseName (Naziv baze podataka) i ObjectName (Naziv objekta). Otklanjanje pogrešaka u aplikacijama ima koristi od stupaca ApplicationName (Naziv aplikacije), SPID (SPOTREBA) i Error (Pogreška).

Odabir samo potrebnih stupaca smanjuje opterećenje praćenja i pojednostavljuje analizu. Izbjegavajte bilježenje svih dostupnih stupaca osim ako to nije posebno potrebno. Svaki dodatni stupac povećava količinu prikupljenih i obrađenih podataka, što potencijalno utječe na performanse poslužitelja.

2.2.3 Filtri

Filtri ograničavaju koje događaje praćenje bilježi na temelju određenih kriterija. Ispravno konfigurirani filtri dramatično smanjuju količinu praćenja, čineći analizu upravljivom i minimizirajući utjecaj na performanse. Filtri 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. Kombiniranjem više filtera stvaraju se precizne definicije tragova koje hvataju točno ono što vam je potrebno.

Filtriranje koje vodi računa o performansama ključno je za produkcijska okruženja. Uvijek filtrirajte prema Nazivu baze podataka ili Nazivu aplikacije kako biste izbjegli bilježenje aktivnosti sustava. Postavite minimalne pragove trajanja kako biste zanemarili upite koji se brzo izvršavaju. Oprezno koristite filtre TextData jer zahtijevaju usporedbe nizova koje dodaju opterećenje.

2.2.4 Predlošci tragova

Predlošci praćenja pružaju unaprijed konfigurirane odabire događaja, stupaca i filtera za uobičajene scenarije. SQL Server Profiler uključuje nekoliko ugrađenih predložaka koji služe kao početne točke za stvaranje praćenja. 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 fokusira se na izvršavanje upita uz minimalne troškove. Predložak Tuning prikuplja događaje posebno za analizu Database Engine Tuning Advisora. Svaki predložak uravnotežuje prikupljanje informacija s utjecajem na performanse.

Izrada prilagođenih predložaka štedi vrijeme i osigurava dosljednost u svim sesijama praćenja. Konfigurirajte praćenje sa svojim željenim događajima, stupcima i filterima, a zatim ga spremite kao predložak. Prilagođeni predlošci postaju posebno vrijedni kada opetovano rješavate slične probleme.

3. Početak rada s SQL Server Profiler

3.1 Sistemski zahtjevi i preduvjeti

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

Zahtjevi za dopuštenja određuju tko može stvarati i pokretati tragove. Članovi fiksne uloge poslužitelja sysadmin imaju neograničen pristup SQL Server Funkcionalnost profilera. Za korisnike koji nisu administratori sustava, dozvola ALTER TRACE omogućuje stvaranje i upravljanje tragovima.

Prilikom praćenja udaljenih poslužitelja primjenjuju se mrežni aspekti. 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 poslužitelja izbjegavaju ovo ograničenje tako što se u potpunosti izvode na poslužitelju 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. Otvoren SQL Server Management Studio i povezivanje s bilo kojim SQL Server primjer.
  2. kliknite Alati izbornik u gornjoj traci izbornika.
  3. odabrati SQL Server Profiler s padajućeg izbornika.
  4. The SQL Server Aplikacija Profiler pokreće se u novom prozoru.

Start SQL Server Profiler u SQL Server Studio za upravljanje.

3.2.2 Pokretanje iz izbornika Start sustava Windows

Kontrola pristupa SQL Server Profiler izravno iz sustava Windows pomoću ovih koraka:

  1. Kliknite na Windows Start tipku.
  2. Tip SQL Server Profiler u okviru za pretraživanje.
  3. odabrati SQL Server Profiler iz rezultata pretraživanja.
  4. Aplikacija se pokreće bez aktivnih veza.

Start SQL Server Profiler iz okvira za pretraživanje sustava Windows.

Alternativno, krećite se kroz hijerarhiju izbornika Start:

  1. Otvorite Start Izbornik.
  2. Pronađite microsoft SQL Server Alati mapa.
  3. Proširite mapu i kliknite SQL Server Profiler.

Start SQL Server Profiler iz izbornika Start sustava Windows.

3.2.3 Povezivanje na SQL Server Slučajevi

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

  1. Kliknite file u traci izbornika.
  2. odabrati Novi trag s padajućeg izbornika.
  3. The Spojite se na poslužitelj pojavljuje se dijaloški okvir.
  4. Unesite naziv vašeg servera u Naziv poslužitelja polje.
  5. Odaberite Windows autentifikacija or SQL Server Ovjera.
  6. Ako koristite SQL Server Autentifikacija, unesite svoje pristupne podatke.
  7. Kliknite Connect za uspostavljanje veze.

Spojite se na a SQL Server primjer u SQL Server Profiler.

Za udaljene veze navedite puni naziv poslužitelja, uključujući naziv instance ako je primjenjivo. Za imenovane instance koristite format NAZIVPOSLUŽITELJA\NAZIVINSTANCE. Provjerite mrežnu povezivost i postavke vatrozida ako pokušaji povezivanja ne uspiju.

4. Izrada i konfiguriranje SQL Server tragovi

4.1 Izrada prvog traga pomoću predloška

Napravite svoj prvi trag slijedeći ove korake:

  1. Lansirati SQL Server Profiler.
  2. Kliknite file -> Novi trag i spojite se na ciljni poslužitelj.
  3. The Svojstva traga pojavljuje se dijaloški okvir.
  4. Unesite opisni naziv u Naziv traga polje.
  5. Odaberite predložak iz Koristite predložak padajućeg.
  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, stupce i filtere za uobičajene scenarije.
  7. Kliknite trčanje za trenutni početak snimanja događaja.

Postavite svojstva traga u SQL Server Profiler.

4.2 Prilagodite svoj trag

Predlošci često ne mogu zadovoljiti vaše zahtjeve. U takvom slučaju možete u potpunosti prilagoditi svoj trag:

  1. u Svojstva traga dijaloški okvir.
  2. Odaberite Prazan predložak iz Koristite predložak padajućeg.Za trag koristite prazan predložak.
  3. kliknite Odabir događaja sada možete prilagoditi sve događaje, stupce podataka i filtere prema svojim zahtjevima. O njima ćemo raspravljati 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 Odabir događaja kartica:

  1. kliknite + ikonu pored kategorije Događaj da biste je proširili.
  2. Kliknite potvrdni okvir 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 obuhvaća izvršavanje ad-hoc upita s događajima poput SQL:BatchStarting i SQL:BatchCompleted. Ovi događaji prate upite poslane izravno na SQL Server izvan pohranjenih procedura.

Kategorija Zaključavanja prati događaje povezane s istodobnošć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 Pogreške i upozorenja bilježi događaje iznimki, uključujući Iznimku, Pažnju i Poruku o korisničkoj pogrešci. Ovi događaji pomažu u identificiranju pogrešaka aplikacije i SQL Server upozorenja tijekom sesija praćenja.

4.3.2 Odabir pravih događaja za vaš scenarij

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 stupce Duration, CPU, Reads i Writes za mjerenje korištenja resursa. Ovi događaji pružaju osnovu za identificiranje 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 za praćenje pristupa bazi podataka. Uključite stupce NazivPrijave, NazivBazeDatabase i NazivObjekta kako biste identificirali tko je pristupio kojim resursima.

Scenariji otklanjanja pogrešaka imaju koristi od sveobuhvatnog bilježenja događaja. Uključite događaje pohranjenih procedura, SQL batch događaje i događaje pogrešaka kako biste pratili cjelovite tokove izvršavanja. Zabilježite dodatni kontekst pomoću stupaca SPID, ApplicationName i HostName kako biste povezali događaje s određenim sesijama.

4.4 Konfiguriranje stupaca podataka

Prema zadanim postavkama, kada odaberete događaj, svi njegovi stupci s podacima bit će odabrani (označeni). Možete poništiti odabir nepotrebnih stupaca kako biste smanjili opterećenje i pojednostavili analizu:

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

Bitni stupci za svaki trag uključuju EventClass za identifikaciju vrste događaja, TextData za bilježenje stvarne SQL naredbe, LoginName za identifikaciju korisnika koji izvršava i StartTime za vremensku oznaku kada se događaj dogodio. Ovi stupci pružaju temeljni kontekst za svaki zabilježeni događaj.

Stupci povezani s performansama mjere potrošnju resursa. Trajanje označava koliko je dugo događaj trajao 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.

Stupci Sigurnost i revizija prate obrasce pristupa podacima. NazivDatabaseName identificira kojoj je bazi podataka pristupljeno. NazivObjectName određuje uključenu tablicu ili objekt. NazivApplicationName otkriva koja je aplikacija pokrenula aktivnost. Zajedno, ovi stupci pružaju sveobuhvatne revizijske tragove.

4.5 Postavljanje filtera za smanjenje šuma

4.5.1 Uobičajeni kriteriji filtriranja

Konfigurirajte filtere koristeći sljedeći pristup:

  1. Otvorite Svojstva traga dijaloški okvir.
  2. kliknite Odabir događaja Tab.
  3. Kliknite Filtri stupaca gumb u donjem desnom kutu.
    Kliknite gumb "Filtri stupaca" u dijaloškom okviru "Svojstva traga".
  4. Odaberite stupac s popisa s lijeve strane.
  5. Konfigurirajte kriterije filtriranja u ploči s desne strane.
    Postavite filtar za stupac podataka u dijalogu "Svojstva traga".
  6. Kliknite OK za primjenu filtra.

Filtri naziva aplikacija izoliraju aktivnost od određenih aplikacija. Proširite stupac Naziv aplikacije u dijalogu filtra, unesite naziv svoje aplikacije u Like polje i SQL Server Profiler bilježi samo događaje iz te aplikacije. Ovaj filter se pokazao neprocjenjivim pri rješavanju problema specifičnih za aplikaciju.

Filtri naziva baza podataka ograničavaju snimanje na određene baze podataka. Filtrirajte prema NazivuBazePodataka kako biste isključili aktivnost sistemske baze podataka i usredotočili se na baze podataka vaše aplikacije. Unesite nazive baza podataka u Like or Jednak polje ovisno o tome trebate li podudaranje zamjenskih znakova.

Filtri trajanja hvataju samo sporo izvodljive operacije. Postavite minimalni prag u Veće ili jednako polje u stupcu Trajanje. Na primjer, postavljanjem Trajanja >= 1000 bilježe se samo događaji koji traju dulje od jedne sekunde, filtrirajući upite koji se brzo izvršavaju.

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

4.4.2 Najbolje prakse filtriranja

Učinkovito filtriranje uravnotežuje prikupljanje podataka s utjecajem na performanse. Uvijek primijenite barem jedan filtar kako biste spriječili prikupljanje prekomjerne aktivnosti sustava. Filtri DatabaseName i ApplicationName trebali bi biti vaša početna toč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 poslužitelja i čini analizu nepraktičnom. Postavite specifične kriterije filtriranja koji ciljaju vaše ciljeve rješavanja problema.

Testirajte filtre prije implementacije u produkciju. Prvo pokrenite tragove u razvojnim ili testnim okruženjima kako biste provjerili bilježe li filtri očekivane događaje bez prekomjernog opterećenja. Prilagodite kriterije filtriranja na temelju količine snimljenih podataka.

4.5 Rad s predlošcima tragova

4.5.1 Pregled ugrađenih predložaka

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

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

Predložak za podešavanje optimizira odabir događaja za analizu alata Database Engine Tuning Advisor. Bilježi događaje i stupce 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 stupce potrebne za funkcionalnost ponovnog prikaza traga. Bilježi sveobuhvatne detalje izvršavanja, omogućujuć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 Izrada prilagođenih predložaka

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

  1. Kliknite file -> Predlošci -> Novi predložak …
  2. Unesite opisni naziv u Naziv novog predloška polje.
  3. Po želji, označite Novi predložak temelji se na postojećem i odaberite postojeći predložak ako ne želite graditi od nule:
    Izradite novi predložak u SQL Server Profiler.
  4. kliknite Odabir događaja prilagodite predložak praćenja željenim događajima, stupcima i filterima baš kao što vi napraviti s normalnim tragom.
  5. Kliknite UŠTEDI za spremanje predloška.

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

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

4.6 Spremanje izlaza traga

Po defaultu, SQL Server Profiler će prikazati događaje u prozoru praćenja, ali ih NEĆE spremiti. Možete odabrati spremanje podataka praćenja u datoteku ili tablicu u Svojstva traga dijalog prilikom stvaranja novog traga.

4.6.1 Spremi u datoteku

  1. u Svojstva traga dijalog, provjera Spremi u datoteku.
  2. Kliknite ikonu mape za otvaranje preglednika datoteka.
  3. Idite do željene lokacije za spremanje.
  4. Unesite naziv datoteke s ekstenzijom .trc.
  5. Kliknite UŠTEDI.
  6. Postaviti Postavi maksimalnu veličinu datoteke ograničiti veličinu pojedinačne datoteke.
  7. Omogući Omogući prebacivanje datoteka za stvaranje više datoteka.
  8. Opcionalno omogući Poslužitelj obrađuje podatke praćenja za tragove na strani poslužitelja.

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

Upravljanje veličinom datoteka sprječava iscrpljivanje prostora na disku. Postavite maksimalnu veličinu datoteke na razumnu vrijednost poput 500 MB ili 1 GB na temelju dostupnog prostora na disku i očekivanog trajanja praćenja. Prijenos datoteke automatski stvara nove datoteke kada se dosegne ograničenje veličine, dodajući broj nazivu datoteke.

4.6.2 Spremi u tablicu

  1. u Svojstva traga dijalog, provjera Spremi u tablicu.
  2. The Tablica odredišta pojavljuje se dijaloški okvir.
    Odaberite odredišnu tablicu za spremanje podataka praćenja.
  3. Odaberite poslužitelj iz Server padajućeg.
  4. Odaberite bazu podataka iz Baza podataka padajućeg.
  5. Odaberite postojeću tablicu ili unesite novi naziv tablice u Stol polje.
  6. Kliknite OK potvrditi.
  7. Opcionalno postavljeno Postavi maksimalan broj redaka ograničiti veličinu tablice.

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

Prilikom spremanja u tablice primjenjuju se razmatranja performansi. Pohrana u tablice uvodi dodatne troškove u usporedbi s pohranom u datoteke jer SQL Server Morate zapisivati ​​podatke praćenja putem mehanizma za pohranu. Koristite pohranu tablica kada trebate odmah upitati podatke praćenja pomoću T-SQL-a.

Zadržavanje podataka postaje važno za tablice praćenja. Postavite maksimalna ograničenja redaka kako biste spriječili preveliki rast tablica. Redovito arhivirajte ili brišite stare podatke praćenja kako biste održali performanse. Razmislite o particioniranju velikih tablica 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 gumba na alatnoj traci:Upravljajte tragovima putem gumba na alatnoj traci u SQL Server Profiler.

  • Zeleno Start gumb započinje snimanje događaja prema vašoj konfiguraciji.
  • Kliknite Pauza privremeno obustaviti prikupljanje podataka bez gubitka veze.
  • Kliknite zaustaviti za završetak praćenja i zatvaranje veze.

Putem stavki izbornika:
Upravljajte tragovima putem stavki izbornika u SQL Server Profiler.

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

Upravljajte tragovima putem izbornika koji se klikne desnom tipkom miša u SQL Server Profiler.

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

Klijentski tragovi 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 pokrenuti dok radite u drugim aplikacijama.

5.2 Praćenje tragova u stvarnom vremenu

Pratite snimljene događaje dok se pojavljuju u glavnom prozoru praćenja. Svaki redak predstavlja jedan događaj sa stupcima koji prikazuju svojstva događaja. Mreža se kontinuirano ažurira tijekom aktivnih praćenja, prikazujući najnovije događaje na dnu prema zadanim postavkama.

Monitor tragova u stvarnom vremenu SQL Server Profiler.

Prepoznajte obrasce i probleme promatranjem učestalosti i karakteristika događaja. Događaji dugog trajanja ukazuju na probleme s performansama. Česti događaji s pogreškama ukazuju na probleme s aplikacijama. Neobična aktivnost prijave može signalizirati sigurnosne probleme. Praćenje u stvarnom vremenu omogućuje trenutni odgovor na nastale probleme.

Pomičite se kroz snimljene događaje kako biste pregledali određene pojave. Kliknite bilo koji redak da biste odabrali događaj i vidjeli njegove sve detalje. Dvaput kliknite događaje da biste otvorili detaljne dijaloške okvire svojstava koji prikazuju sve vrijednosti stupaca. Koristite značajku zaključavanja pomicanja kako biste spriječili automatsko pomicanje tijekom pregleda povijesnih događaja.

5.3 Upravljanje više istodobnih tragova

Istovremeno pokretanje više tragova pruža fleksibilnost za složene scenarije praćenja. Izradite 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 neovisno sa svojom vlastitom konfiguracijom.

Upravljajte više istovremenih tragova u SQL Server Profiler.

Raspodjela resursa postaje kritična s višestrukim tragovima. 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 poslužitelja 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, pokrenite praćenje koje zahtijeva puno resursa tijekom razdoblja niske aktivnosti. Zakažite 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 poslužitelja

Prema zadanim postavkama, novokreirani trag je trag na strani klijenta, što zahtijeva aktivnu vezu od SQL Server Profiler na poslužitelj baze podataka. Praćenje se odmah zaustavlja ako se veza prekine ili se Profiler zatvori.

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

Za stvaranje traga na strani poslužitelja:

  1. Kliknite Datoteka -> Novi trag …
  2. u Svojstva traga dijalog, provjera Spremi u datoteku
  3. Postavite lokaciju datoteke i ostale postavke.
  4. Omogući Poslužitelj obrađuje podatke praćenja za stvaranje traga na strani poslužitelja.

Stvorite trag na strani poslužitelja u SQL Server Profiler.

Implikacije na performanse značajno se razlikuju između vrsta tragova. Tragovi na strani klijenta moraju prenositi podatke preko mreže do sučelja Profilera, što povećava latenciju i potrošnju propusnosti. Tragovi na strani poslužitelja uvode manje opterećenja jer se podaci zapisuju izravno na disk na poslužitelju.

Koristite tragove na strani klijenta za ad-hoc rješavanje problema, brze dijagnostičke sesije i situacije u kojima je vrijedna neposredna vizualna povratna informacija. Odaberite tragove na strani poslužitelja za nadzor produkcije, dugotrajna snimanja i scenarije koji zahtijevaju rad bez nadzora.

6. Analiziranje SQL Server Podaci profilera

6.1 Otvaranje i pregled spremljenih tragova

Učitajte spremljene datoteke tragova pomoću ovih koraka:

  1. Lansirati SQL Server Profiler.
  2. Kliknite file -> Otvoren -> Datoteka traga.
  3. Idite do lokacije datoteke praćenja.
  4. Odaberite .trc datoteku i kliknite Otvoren.
  5. Podaci traga učitavaju se u glavni prozor.

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

  1. Kliknite file -> Otvoren -> Tablica praćenja.
  2. Spojite se na poslužitelj koji hostira tablicu praćenja.
  3. Odaberite bazu podataka iz Baza podataka padajućeg.
  4. Odaberite stol iz Stol padajućeg.
  5. Kliknite OK za učitavanje podataka.

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 -> naći ili pritisnite Ctrl + F.
  2. Unesite tekst za pretraživanje u Pronađite ono što polje.
  3. Odaberite stupac za pretraživanje iz Pogledaj u padajućeg.
  4. Kliknite Traži sljedeće pronaći odgovarajuće događaje.

Pronađite podatke o tragovima u SQL Server Profiler.

Filtriranje na temelju stupaca pročišćava prikazane podatke bez ponovnog bilježenja događaja. Desnom tipkom miša kliknite bilo koje zaglavlje stupca i odaberite opcije filtriranja iz kontekstnog izbornika. Unesite kriterije filtriranja da biste prikazali samo odgovarajuće retke. Ovaj pristup ubrzava analizu skrivanjem nebitnih događaja.

6.2.2 Pronalaženje određenih događaja

Funkcija pretraživanja pomaže u lociranju određenih događaja u velikim datotekama praćenja. Koristite dijaloški okvir Traži za pretraživanje prema tekstualnom sadržaju, vrsti događaja ili vrijednosti stupca. Regularni izrazi omogućuju složene obrasce pretraživanja kada je to potrebno.

Označite važne događaje za brzo pregledavanje tijekom analize. Desnom tipkom miša kliknite zanimljive događaje i odaberite opcije oznaka da biste ih označili. Krećite se između oznaka pomoću prečaca na tipkovnici ili naredbi izbornika, što olakšava usporedbu povezanih događaja.

6.3 Grupiranje i agregiranje događaja

Grupirajte događaje prema vrijednostima stupaca kako biste identificirali obrasce i saželi aktivnost. Desnom tipkom miša kliknite bilo koje zaglavlje stupca i odaberite Grupiraj po ovom stupcu organizirati događaje. Grupirani prikazi sažimaju slične događaje, što olakšava uočavanje općih obrazaca.

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

Proširite i sažmite grupe za detaljan pregled određenih kategorija. Kliknite ikone plusa i minusa pored zaglavlja grupa za prikaz ili skrivanje grupiranih događaja. Ovaj hijerarhijski prikaz olakšava analizu od vrha prema dolje, počevši od obrazaca visoke razine 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 redak za odabir događaja.
  3. Cijeli tekst upita pogledajte u donjoj ploči.
  4. Press Ctrl + za odabir cijelog teksta upita.
  5. Press Ctrl + C kopirati tekst upita.
  6. Zalijepite upit u Management Studio za daljnju analizu.

Izdvoji SQL upit iz događaja praćenja.

Identificirajte problematične upite sortiranjem prema stupcima performansi. Kliknite zaglavlje stupca Trajanje za sortiranje prema vremenu izvršavanja. Najsporiji upiti prikazuju se na vrhu ili dnu ovisno o smjeru sortiranja. Slično tome, sortirajte prema CPU-u, čitanjima ili pisanju kako 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. Usporedite planove izvršenja i metrike performansi između originalnih i optimiziranih verzija.

6.5 Korelacija događaja i razumijevanje tijeka izvršenja

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

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

Korelirajte događaje ispitivanjem zajedničkih vrijednosti stupaca. 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čka SQL Server Primjeri upotrebe profilera

7.1 Rješavanje problema s performansama

7.1.1 Prepoznavanje sporih upita

Snimite spore upite pomoću sljedeće konfiguracije:

  1. Stvorite novi trag pomoću TSQL Predložak.
  2. u Odabir događaja kartica, provjeri SQL:BatchCompleted i RPC: Završeno su odabrani.
  3. Kliknite Filtri stupaca.
  4. odabrati Trajanje s popisa stupaca.
  5. Unesite 1000000 u Veće ili jednako polje za bilježenje upita koji traju dulje od 1 sekunde.
  6. Kliknite OK i započnite trag.
  7. Pokrenite praćenje tijekom razdoblja najveće upotrebe.
  8. Zaustavite praćenje i sortirajte po trajanju kako biste identificirali najsporije upite.

Analiza temeljena na trajanju otkriva obrasce vremena izvršavanja. Sortirajte zabilježene događaje prema stupcu Trajanje kako biste prvo vidjeli operacije koje se najdulje izvode. Pregledajte stupac TextData za te 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 stupcu CPU kako biste pronašli upite vezane uz procesor kojima su potrebna algoritamska poboljšanja. Sortirajte po stupcima Čitanja ili Pisanja kako biste identificirali upite vezane uz I/O kojima je korisno indeksiranje ili prepisivanje upita.

7.1.2 Otkrivanje blokiranja i zastoja

Konfigurirajte otkrivanje blokiranja slijedeći ove korake:

  1. Stvorite novi trag.
  2. u Odabir događaja kartica, proširi Brave.
  3. odabrati Zaključavanje: Zaključavanje i Brava: Lanac s zamršenom bravom.
  4. Proširiti Pogreške i upozorenja.
  5. odabrati Izvješće o blokiranom procesu.
  6. Uključi stupce: 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 utječu na performanse aplikacije. Događaji zaključavanja: Zastoji pokazuju kada SQL Server otkrivene i riješene situacije zastoja. Zaključavanje: Događaji lanca zastoja prikazuju procese uključene u zastoje.

Grafikoni zastoja pružaju vizualne prikaze scenarija zastoja. Kada se dogodi zastoj, stupac TextData sadrži XML koji opisuje zastoj. Kopirajte ovaj XML i otvorite ga u SQL Server Management Studio za prikaz 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 pomoću ovih koraka:

  1. Stvorite novi trag pomoću Zvučan Predložak.
  2. Konfigurirajte praćenje za spremanje u datoteku.
  3. Pokrenite praćenje tijekom reprezentativnih razdoblja opterećenja.
  4. Skupite barem nekoliko sati aktivnosti.
  5. Zaustavite praćenje i spremite datoteku.
  6. Pokreni savjetnika za podešavanje mehanizma baze podataka.
  7. Odaberite datoteku praćenja kao izvor radnog opterećenja.
  8. Pokrenite analizu kako biste dobili preporuke indeksa.

Integracija s 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 pohrane i održavanja.

7.2 Rješavanje problema s aplikacijom

7.2.1 Otklanjanje pogrešaka u aplikaciji

Pratite pogreške aplikacije pomoću ove konfiguracije:

  1. Stvorite novi trag.
  2. Proširiti Pogreške i upozorenja na kartici Odabir događaja.
  3. odabrati izuzetak, Poruka o pogrešci korisnikai Pažnja.
  4. Uključi stupce: greška, Tekstualni podaci, Naziv aplikacije, SPID.
  5. filtriraj proizvode Naziv aplikacije usredotočiti se na svoju prijavu.
  6. Pokrenite praćenje i reproducirajte scenarij pogreške.
  7. Pregledajte zabilježene događaje pogrešaka za dijagnostičke informacije.

Praćenje pogrešaka otkriva detalje iznimki koji su često skriveni od aplikacija. Stupac Pogreška sadrži SQL Server brojevi pogrešaka. Stupac TextData prikazuje poruke o pogreškama i upit koji je uzrokovao pogrešku. Stupac Severity označava razine ozbiljnosti pogreške.

Praćenje iznimaka bilježi probleme tijekom izvođenja, uključujući kršenja ograničenja, pogreške u dozvolama i događaje isteka vremena. Povežite događaje pogrešaka s prethodnim događajima upita kako biste razumjeli što je pokrenulo iznimke.

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

Pratite aktivnost aplikacije slijedeći ove korake:

  1. Stvorite novi trag pomoću Standard Predložak.
  2. Kliknite Filtri stupaca.
  3. odabrati Naziv aplikacije i unesite naziv svoje aplikacije u Like polje.
  4. Po želji filtrirajte po Ime hosta izolirati određene poslužitelje.
  5. Pokrenite praćenje tijekom rada aplikacije.
  6. Pregledajte zabilježene događaje kako biste vidjeli sve interakcije s bazom podataka.

Filtriranje naziva aplikacija izolira 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 uključuje li vaš niz za povezivanje parametar Naziv aplikacije za učinkovito filtriranje.

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

7.2.3 Provjera ispravnosti ponašanja aplikacije

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

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

7.3 Sigurnosna revizija

7.3.1 Praćenje pokušaja prijave

Konfigurirajte praćenje prijave pomoću ovih koraka:

  1. Stvorite novi trag.
  2. Proširiti Sigurnost za reviziju na kartici Odabir događaja.
  3. odabrati Prijava za reviziju, Odjava iz revizijei Prijava za reviziju nije uspjela.
  4. Uključi stupce: Korisničko ime, Ime hosta, Naziv aplikacije, Vrijeme početka.
  5. Pokrenite praćenje za praćenje aktivnosti autentifikacije.
  6. Pregledajte neuspješne prijave zbog potencijalnih sigurnosnih problema.

Uspješne i neuspješne prijave omogućuju sveobuhvatno praćenje autentifikacije. Događaji revizije prijave bilježe uspješne pokušaje autentifikacije s identitetom korisnika i izvornim informacijama. Događaji neuspješne revizije prijave označavaju 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

Nadzirite pristup podacima pomoću ove konfiguracije:

  1. Stvorite novi trag.
  2. Proširiti Sigurnost za reviziju.
  3. odabrati Pristup objektu baze podataka za reviziju.
  4. Uključi stupce: ObjectName, Korisničko ime, Tekstualni podaci, Naziv baze podataka.
  5. filtriraj proizvode ObjectName za praćenje specifičnih osjetljivih tablica.
  6. Pokrenite praćenje kako biste zabilježili pokušaje pristupa.

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

Pristup osjetljivim podacima zahtijeva pažljivo praćenje kako bi se osigurala usklađenost sa sigurnosnim politikama. Izradite tragove posebno za tablice koje sadrže osobne podatke, financijske podatke ili druge povjerljive informacije. Redovito pregledavajte obrasce pristupa kako biste identificirali neprimjeren pristup podacima.

7.3.3 Identificiranje neovlaštenih aktivnosti

Otkrijte sumnjive aktivnosti analizom obrazaca upita u snimljenim tragovima. Potražite neobične upite koji ne odgovaraju normalnom ponašanju aplikacije. SELECT naredbe bez WHERE klauzule koje dohvaćaju cijele tablice mogu ukazivati ​​na pokušaje krađe podataka.

Pokušaji eskalacije privilegija pojavljuju se kao pogreške u dopuštenjima ili pokušaji izvršavanja administratorskih naredbi. Pratite upite koji pokušavaju pristupiti sistemskim tablicama, izmijeniti konfiguraciju poslužitelja ili stvoriti privilegirane račune. Filtrirajte događaje pogrešaka i pregledajte stupac TextData za sumnjive aktivnosti.

7.4 Planiranje kapaciteta i analiza radnog opterećenja

Utvrdite osnovne vrijednosti bilježenjem reprezentativnog opterećenja tijekom normalnog rada. Pokrenite tragove tijekom tipičnog radnog vremena kako biste razumjeli standardne obrasce aktivnosti. Spremite ove tragove kao osnovne vrijednosti performansi za buduću usporedbu.

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

Obrasci iskorištenosti resursa proizlaze iz analize radnog opterećenja. Grupirajte događaje prema vremenskim intervalima kako biste vidjeli raspodjelu aktivnosti tijekom dana. Izračunajte agregirane metrike CPU-a, diskovnog I/O-a 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 Stvaranje tragova na strani poslužitelja pomoću T-SQL-a

8.1.1 Korištenje sp_trace_create i srodnih postupaka

Programski stvarajte tragove na strani poslužitelja pomoću T-SQL pohranjenih procedura. Ovaj pristup omogućuje automatizirano stvaranje i upravljanje tragovima bez potrebe SQL Server Grafičko sučelje Profilera.

Definirajte trag na strani poslužitelja pomoću ovog primjera koda:

  1. Deklarirajte varijable za ID traga i putanju datoteke.
  2. Pozovite sp_trace_create za stvaranje novog traga.
  3. Za dodavanje događaja i stupaca koristite sp_trace_setevent.
  4. Opcionalno koristite sp_trace_setfilter za konfiguriranje filtera.
  5. Pozovite sp_trace_setstatus za pokretanje praćenja.

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 sljedećim pozivima procedure za konfiguriranje traga.

Dodajte događaje pomoću procedure sp_trace_setevent. Navedite ID praćenja, ID događaja i ID stupca za svaku kombinaciju događaja i stupca koju želite snimiti. Pozovite ovu proceduru više puta za izradu potpunih konfiguracija praćenja.

Konfigurirajte filtere pomoću procedure sp_trace_setfilter. Navedite ID traga, ID stupca, logički operator, operator usporedbe i vrijednost filtera. Višestruki pozivi filtera kombiniraju se za stvaranje složenih kriterija filtera.

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

8.1.2 Prednosti tragova na strani poslužitelja

Smanjeni klijentski reži čini tragove na strani poslužitelja idealnim za nadzor produkcije. Poslužitelj baze podataka obrađuje sve operacije praćenja bez trošenja resursa klijentskog računala. Mrežna propusnost se ne troši pri prijenosu događaja klijentskoj aplikaciji.

Automatizirano izvršavanje omogućuje prikupljanje tragova bez nadzora. Tragovi na strani poslužitelja nastavljaju se izvršavati nakon stvaranja čak i ako ne postoji veza s klijentom. Zakažite stvaranje tragova putem SQL Server Poslovi agenta za automatizirano praćenje.

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

8.2 Funkcionalnost ponavljanja traga

8.2.1 Snimanje tragova za reprodukciju

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

  1. Stvorite novi trag pomoću TSQL_Replay Predložak.
  2. Provjerite jesu li odabrani svi potrebni događaji i stupci.
  3. Konfigurirajte praćenje za spremanje u datoteku.
  4. Pokrenite praćenje tijekom razdoblja opterećenja koje želite snimiti.
  5. Zaustavite praćenje i spremite datoteku.

Obavezni događaji i stupci osiguravaju potpunu reprodukciju traga. Predložak TSQL_Replay uključuje sve potrebne vrste događaja i stupce 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

Ponovno reproducirajte snimljena opterećenja pomoću ovih koraka:

  1. In SQL Server Profiler, kliknite file -> Otvoren -> Datoteka traga.
  2. Odaberite datoteku traga spremnu za ponovnu reprodukciju.
  3. Kliknite Ponavljanje -> Start.
  4. Spojite se s ciljnim poslužiteljem u dijalogu za reprodukciju.
  5. Konfigurirajte opcije ponavljanja, uključujući redoslijed i vrijeme ponavljanja.
  6. Kliknite OK za početak ponavljanja.
  7. Pratite napredak reprodukcije u prozoru statusa.

Opcije konfiguracije ponavljanja kontroliraju kako SQL Server Profiler reproducira snimljeno radno opterećenje. Ponovno reproducirajte događaje redoslijedom kojim su snimljeni kako bi se održali vremenski odnosi. Konfigurirajte hoće li se zadržati izvorno vrijeme ili će se događaji ponovno reproducirati što je brže moguće.

8.2.3 Primjeri upotrebe za ponovnu reprodukciju traga

Testiranje opterećenja ima koristi od ponavljanja traga reproduciranjem realističnih opterećenja. Snimite tragove produkcijskog opterećenja i ponovno ih reproducirajte u odnosu na testne sustave kako biste provjerili performanse u stvarnim obrascima korištenja. Prilagodite postavke istodobnosti kako biste simulirali različite razine opterećenja.

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

Scenariji testiranja uključuju regresijsko 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 s alatom Database Engine Tuning Advisor

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

Pokrenite Savjetnik za podešavanje mehanizma baze podataka 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.

Tijek rada za optimizaciju performansi integrira snimanje tragova s ​​analizom podešavanja. Zabilježite reprezentativna opterećenja tijekom 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

Raspored tragova pomoću SQL Server Agenti za automatsko prikupljanje podataka. Izradite T-SQL skripte koje definiraju tragove na strani poslužitelja pomoću procedura sp_trace. Zakažite izvođenje ovih skripti u određeno vrijeme ili intervalima.

PowerShell automatizacija omogućuje sofisticirane scenarije upravljanja tragovima. Pišite PowerShell skripte koje stvaraju tragove, prate njihov status i obrađuju prikupljene podatke. Zakažite PowerShell skripte putem Raspoređivača zadataka ili SQL Server agent.

SQL Server Poslovi agenta omogućuju pouzdano zakazano izvršavanje. Izradite poslove koji pokreću tragove na početku razdoblja praćenja i zaustavljaju tragove nakon što prikupljanje podataka završi. Konfigurirajte obavijesti o poslovima kako biste upozorili administratore na pogreške.

8.5 Programska analiza tragova

Čitajte datoteke praćenja pomoću T-SQL-a pomoću funkcije fn_trace_gettable. Ova funkcija s tabličnim vrijednostima analizira datoteke praćenja i vraća podatke o događajima kao skup rezultata. Upite ove podatke pomoću standardnog T-SQL-a za izvođenje prilagođene analize.

Prilagođene skripte za analizu omogućuju automatiziranu 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 prikupljanje tragova završi.

Generirajte izvješća upitima o podacima praćenja pohranjenima u tablicama. Izradite prikaze koji agregiraju događaje prema vremenskom razdoblju, korisniku ili aplikaciji. Izradite rješenja za izvještavanje koja pružaju redovite uvide u aktivnost i performanse baze podataka.

9. SQL Server Najbolje prakse za profilere

9.1 Najbolje prakse za poboljšanje performansi

9.1.1 Minimiziranje opterećenja praćenjem

Odaberite samo potrebne 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 izravno relevantni za te ciljeve.

Učinkovito koristite filtre kako biste spriječili hvatanje nebitnih podataka. Filtrirajte prema NazivuBazeDatabase (DatabaseName) kako biste isključili sistemske baze podataka. Filtrirajte prema Trajanju (Termination) kako biste hvatali samo spore upite. Filtrirajte prema NazivuAplikacije (ApplicationName) kako biste se usredotočili na određene aplikacije. Pravilno filtriranje dramatično smanjuje opterećenje praćenjem.

Razmatranja na strani poslužitelja u odnosu na klijenta utječu na performanse. Tragovi na strani poslužitelja zapisuju podatke izravno na disk uz minimalno opterećenje. Tragovi na strani klijenta prenose događaje preko mreže do sučelja Profilera, dodajući latenciju i potrošnju propusnosti. Koristite tragove na strani poslužitelja 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 datoteke u skladu s dostupnom pohranom. Omogućite prebacivanje datoteka kako biste stvorili više datoteka umjesto beskonačnog povećanja jedne datoteke. Pratite prostor na disku tijekom izvršavanja praćenja.

Pohrana u tablicama u odnosu na pohranu u datotekama uključuje različite kompromise u performansama. Pohrana u datotekama nudi bolje performanse tijekom izvršavanja praćenja jer zaobilazi mehanizam za pohranu. Pohrana u tablicama omogućuje T-SQL upite nad podacima praćenja, ali dodaje troškove pisanja. Odaberite vrstu pohrane na temelju svojih zahtjeva za analizu.

9.2 Najbolje sigurnosne prakse

Upravljanje dopuštenjima kontrolira tko može stvarati i pokretati tragove. Dozvolite ALTER TRACE samo pouzdanim korisnicima kojima su potrebne mogućnosti praćenja. Članovi uloge administratora sustava imaju neograničen pristup praćenju. Redovito pregledavajte i revidirajte dopuštenja za praćenje.

Zaštita osjetljivih podataka zahtijeva pažljivu konfiguraciju praćenja. Izbjegavajte snimanje punog teksta upita pri radu s osjetljivim podacima. Razmislite o filtriranju ili šifriranju izlaza praćenja koji sadrži povjerljive informacije. Pohranite datoteke praćenja na sigurna mjesta 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 podatke. Izbrišite datoteke praćenja nakon dovršetka analize kako biste smanjili rizik od izloženosti.

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 opravdava li dijagnostička vrijednost utjecaj na performanse.

Konfiguracije minimalnog utjecaja omogućuju sigurnije praćenje produkcije. Koristite visoko selektivne filtere za hvatanje samo kritičnih događaja. Postavite pragove trajanja kako biste zanemarili upite koji se brzo izvršavaju. Ograničite trajanje praćenja na kratka razdoblja tijekom sesija rješavanja problema. Konfigurirajte praćenja na strani poslužitelja 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 za praćenje statistike izvršavanja upita tijekom vremena. Query Store pruža većinu mogućnosti praćenja performansi bez dodatnog troška 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 povijesnih događaja. Periodično upitajte DMV-ove kako biste pratili stanje poslužitelja 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 poslužitelja i svrhu. Koristite dosljedne obrasce imenovanja u svim tragovima kako biste olakšali upravljanje i analizu.

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

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

9.5 uobičajenih pogrešaka koje treba izbjegavati

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

Zaboravljanjem zaustavljanja tragova trošite resurse i punite 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 nekontrolirane tragove. Redovito pratite pokrenute tragove i zaustavljajte neaktivne ili nepotrebne tragove.

Zanemarivanje optimizacije filtera dovodi do loših performansi i teške analize. Uložite vrijeme u konfiguriranje učinkovitih filtera prije pokretanja praćenja. Testirajte filtere u razvojnim okruženjima kako biste provjerili bilježe li očekivane podatke. Pregledajte i poboljšajte filtere na temelju zabilježenih rezultata.

10. Alternative za SQL Server Profiler u 2025.

10.1 Prošireni događaji: Moderna zamjena

10.1.1 Što su prošireni događaji

Prošireni događaji predstavljaju SQL Servermoderna arhitektura za obradu događaja. Microsoft je ovaj sustav posebno dizajnirao za rješavanje SQL Server Ograničenja Profilera uključuju opterećenje performansi i fleksibilnost konfiguracije. Prošireni događaji pružaju sveobuhvatne mogućnosti praćenja uz znatno nižu potrošnju resursa.

Arhitektura i prednosti razlikuju proširene događaje od starijih tehnologija praćenja. Mehanizam događaja duboko se integrira u SQL ServerOsnovna arhitektura, bilježenje događaja uz minimalne troškove. Asinkrono međuspremništvo događaja sprječava blokiranje operacija baze podataka od strane praćenja. Fleksibilne opcije ciljanja omogućuju raznolike 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žije od ekvivalentnih. SQL Server Tragovi profilera. Arhitektura se bolje skalira s velikim količinama događaja i podržava više istodobnih sesija praćenja.

10.1.2 Migracija s Profilera na proširene događaje

Mapiranje događaja 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 sustava.

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

10.1.3 Prošireni alati i sučelja za događaje

SSMS Extended Events UI omogućuje grafičko upravljanje sesijama. Pristupite proširenim događajima putem mape Upravljanje u Object Exploreru. Izrađujte, mijenjajte i pratite sesije događaja putem sučelja. Pregledavajte snimljene podatke u grafičkim formatima, uključujući mreže i grafikone.

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

10.2 SQL Server Trgovina upita

Query Store automatski bilježi podatke o performansama upita za baze podataka gdje je omogućen. Ova značajka prati planove upita, statistiku izvršavanja i metrike performansi tijekom vremena bez ručne konfiguracije praćenja. Query Store održava povijesne podatke omogućujući analizu trendova i otkrivanje regresije.

Praćenje performansi upita u stvarnom vremenu putem Query Storea otkriva trenutno ponašanje sustava. Pogledajte nedavno izvršene upite, njihove planove izvršenja i potrošnju resursa. Identificirajte upite s povećanim trajanjem ili promjenjivim planovima izvršenja koji mogu ukazivati ​​na probleme.

Analiza povijesnih upita omogućuje usporedbu kroz vremenska razdoblja. Query Store zadržava podatke o performansama tijekom konfiguriranih razdoblja zadržavanja. Usporedite trenutne performanse s povijesnim osnovnim vrijednostima kako biste identificirali 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 nadopunjuje rješavanje problema temeljeno na praćenju pružanjem povijesnog konteksta za probleme s performansama.

10.3 Dinamički upravljački prikazi (DMV)

Lagano praćenje putem DMV-ova pruža informacije o trenutnom stanju bez bilježenja povijesnih događaja. DMV-ovi otkrivaju interne SQL Server statistike i metapodaci putem upitnih prikaza. Upiti DMV-ove pomoću standardnih T-SQL SELECT naredbi.

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 poslužitelja u određenom trenutku.

DMV-ovi nadopunjuju praćenje temeljeno na tragovima pružajući metrike u stvarnom vremenu. Koristite DMV-ove za brze provjere ispravnosti i analizu trenutnog stanja. Kombinirajte DMV upite s 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 izvan SQL ServerUgrađeni alati. Proizvodi dobavljača poput SolarWindsa, Redgatea i Questa pružaju sveobuhvatne značajke praćenja, upozoravanja i analize. Ovi alati često kombiniraju više izvora podataka, uključujući tragove, DMV-ove i brojače performansi.

Usporedba značajki otkriva prednosti različitih pristupa praćenju. Alati trećih strana pružaju vrhunska korisnička sučelja, automatizirana upozorenja i povijesne trendove. SQL ServerUgrađeni alati nude nula dodatnih troškova i dublju integraciju. Procijenite alate na temelju svojih specifičnih zahtjeva i proračuna.

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 učinkovit. Za praćenje proizvodnje, Extended Events ili Query Store pružaju bolje performanse. Za sveobuhvatno praćenje poduzeća, rješenja trećih strana nude najviše značajki.

Kriteriji odabira alata uključuju troškove performansi, jednostavnost korištenja, zahtjeve za zadržavanje podataka i ograničenja proračuna. Prilikom odabira alata uzmite u obzir stručnost svog tima. Poznati alati omogućuju brže rješavanje problema čak i ako novije alternative nude bolje značajke.

Kombinirajte 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 stvarnom vremenu. Ovaj slojeviti pristup pruža robusno praćenje bez prekomjernih troškova.

11. Rješavanje problema SQL Server Problemi s profilerom

11.1 Uobičajeni problemi s povezivanjem

Neuspjesi autentifikacije sprječavaju SQL Server Profiler se ne može povezati s ciljnim poslužiteljima. Provjerite koristite li ispravne vjerodajnice za odabranu metodu provjere autentičnosti. Za provjeru autentičnosti sustava Windows potrebno je da vaš Windows račun ima odgovarajuće SQL Server dozvole. SQL Server Autentifikacija zahtijeva valjane SQL pristupne podatke.

Problemi s mrežnom povezivošću manifestiraju se kao pogreške vremenskog ograničenja ili prekidi veze. Provjerite SQL Server dopušta udaljene veze u svojoj konfiguraciji. Provjerite postavke vatrozida dopuštaju promet na SQL Server's port. Prije rješavanja problema specifičnih za Profiler testirajte osnovnu povezivost pomoću pinga i telneta.

11.2 Problemi s performansama Profilera

Sporo izvršavanje praćenja ukazuje na prekomjerno opterećenje konfiguracije praćenja. Pregledajte odabrane događaje i uklonite nepotrebne. Dodajte filtre kako biste smanjili količinu zabilježenih događaja. Razmislite o korištenju praćenja na strani poslužitelja kako biste smanjili opterećenje obrade na strani klijenta.

Visoka potrošnja resursa utječe na oboje SQL Server i klijenta Profiler. Nadzirite CPU i memoriju poslužitelja tijekom izvršavanja praćenja. Ako su resursi poslužitelja 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 datotekom i tablicom praćenja

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

Problemi s pristupom tablici javljaju se prilikom pokušaja učitavanja tragova iz SQL Server tablice. Provjerite imate li dopuštenje SELECT za tablicu praćenja. Provjerite je li tablica izostavljena ili preimenovana. Provjerite spajate li se na ispravan poslužitelj i bazu podataka koja sadrži tablicu praćenja.

11.4 Nedostajući događaji ili nepotpuni podaci

Pogrešna konfiguracija filtra uzrokuje da tragovi propuštaju očekivane događaje. Pažljivo pregledajte kriterije filtra kako biste bili sigurni da ne isključuju željene događaje. Testirajte filtre pokretanjem kratkih tragova i provjerom podudaraju li se zabilježeni podaci s očekivanjima. Privremeno uklonite filtre kako biste utvrdili uzrokuju li problem.

Prelijevanje međuspremnika se događa kada SQL Server Ne može dovoljno brzo zapisivati ​​podatke traga kako bi pratio generiranje događaja. To se obično događa s nefiltriranim tragovima tijekom 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 traga.

11.5 Rušenja i pogreške Profilera

Uobičajene poruke o pogrešci uključuju „Nije moguće stvoriti trag“ što ukazuje na probleme s dopuštenjima ili ograničenja resursa. Poruke „Trag je zaustavljen“ sugeriraju kvarove traga na strani poslužitelja, moguće zbog stanja punog diska. Pogreške „Nevažeća definicija traga“ ukazuju na probleme s konfiguracijom.

Strategije rješavanja ovise o specifičnoj pogrešci. Pogreške u dozvolama zahtijevaju davanje dozvole ALTER TRACE korisniku. Pogreške resursa zahtijevaju oslobođeni prostor na disku ili memoriju. Pogreške u konfiguraciji zahtijevaju pregled i ispravljanje postavki praćenja. Ponovno pokrenite. SQL Server Profiler ako prestane reagirati.

12. Praktična SQL Server Scenariji i primjeri profilera

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

Ovaj vodič pokazuje bilježenje i analizu sporih upita.

Konfigurirajte trag slijedeći ove korake:

  1. Lansirati SQL Server Profiler i spojite se na ciljni poslužitelj.
  2. Kliknite file -> Novi trag.
  3. Unesite "Analiza sporih upita" u Naziv traga polje.
  4. odabrati TSQL od Koristite predložak padajućeg.
  5. Kliknite Odabir događaja Tab.
  6. Kliknite Filtri stupaca.
  7. odabrati Trajanje i unesite 1000000 u Veće ili jednako.
  8. odabrati Naziv baze podataka i unesite naziv svoje baze podataka u Like.
  9. Kliknite OK za zatvaranje filtera.
  10. Omogući Spremi u datoteku i navedite putanju datoteke.
  11. Kliknite trčanje za početak snimanja.

Pokrenite praćenje tijekom vršnih radnih sati najmanje 30 minuta kako biste zabilježili reprezentativno opterećenje. Zaustavite praćenje nakon što prikupite dovoljno podataka.

Analizirajte rezultate slijedeći ovaj postupak:

  1. kliknite Trajanje zaglavlje stupca za sortiranje prema vremenu izvršavanja.
  2. Odredite 10 najdugovječnijih upita.
  3. Za svaki upit, provjerite Tekstualni podaci stupac.
  4. Kopirajte tekst upita i zalijepite ga u Management Studio.
  5. Koristiti Prikaži procijenjeni plan izvršenja analizirati upit.
  6. Potražite skeniranja tablica, nedostajuće indekse ili neučinkovita spajanja.
  7. pregled CPU, Čitai piše stupci za obrasce potrošnje resursa.

12.2 Scenarij 2: Rješavanje problema zastoja

Ovaj primjer pokazuje kako uhvatiti i analizirati zastoje.

Konfigurirajte nadzor zastoja pomoću ovih koraka:

  1. Stvorite novi trag pod nazivom "Istraga zastoja".
  2. Kliknite Odabir događaja Tab.
  3. Kliknite Prikaži sve događaje.
  4. Proširiti Brave kategorija.
  5. odabrati Zaključavanje: Zaključavanje.
  6. odabrati Brava: Lanac s zamršenom bravom.
  7. Proširiti Pogreške i upozorenja kategorija.
  8. odabrati Izvješće o blokiranom procesu.
  9. Osigurajte Tekstualni podaci stupac je odabran.
  10. Kliknite trčanje za početak praćenja.

Kada se tijekom izvršavanja praćenja dogodi zastoj, u mreži praćenja pojavljuje se događaj Lock:Deadlock.

Interpretirajte informacije o zastoju slijedeći ove korake:

  1. kliknite Zaključavanje: Zaključavanje red događaja.
  2. Pregled Tekstualni podaci stupac u donjoj ploči.
  3. Kopirajte XML sadržaj iz TextData.
  4. Otvorite Management Studio i stvorite novi prozor za upit.
  5. Zalijepite XML u prozor upita.
  6. Spremite datoteku s ekstenzijom .xdl.
  7. Otvorite .xdl datoteku u Management Studiju za pregled grafa zastoja.
  8. Grafikon prikazuje uključene procese, zaključane resurse i odabranu žrtvu.
  9. Pregledajte upite iz oba procesa kako biste razumjeli sukob.

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

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

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

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

  1. Izradite novi trag pod nazivom "Praćenje upita aplikacije".
  2. Odaberite Standard Predložak.
  3. Kliknite Odabir događaja Tab.
  4. Kliknite Filtri stupaca.
  5. odabrati Naziv aplikacije.
  6. Unesite naziv svoje aplikacije u Like polje.
  7. Ako vaša aplikacija koristi grupiranje veza, možda će vam trebati podudaranje zamjenskih znakova.
  8. Kliknite OK za primjenu filtra.
  9. Omogući Spremi u tablicu radi lakšeg upita.
  10. Kliknite trčanje za početak snimanja.

Analiza uzoraka upita otkriva kako vaša aplikacija komunicira s SQL Server:

  1. Nakon prikupljanja podataka, zaustavite praćenje.
  2. Otvorite Management Studio i spojite se na poslužitelj s tablicom praćenja.
  3. Upitajte tablicu tragova kako biste analizirali uzorke.
  4. Prebrojite upite prema vrsti kako biste vidjeli kombinaciju operacija.
  5. Identificirajte najčešće izvršavane upite.
  6. Potražite upite koji bi se mogli predmemorirati ili optimizirati.
  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 stvaranje sigurnosne revizijske trage.

Konfigurirajte sigurnosnu reviziju slijedeći ove korake:

  1. Izradite novi trag pod nazivom "Trag sigurnosne revizije".
  2. Kliknite Odabir događaja Tab.
  3. Kliknite Prikaži sve događaje.
  4. Proširiti Sigurnost za reviziju kategorija.
  5. odabrati Prijava za reviziju, Odjava iz revizije, Prijava za reviziju nije uspjela.
  6. odabrati Pristup objektu baze podataka za reviziju.
  7. Proširiti TSQL kategorija.
  8. odabrati SQL:BatchCompleted.
  9. Kliknite Filtri stupaca.
  10. filtriraj proizvode ObjectName za praćenje specifičnih osjetljivih tablica.
  11. Omogući Spremi u tablicu za dugoročno zadržavanje.
  12. Omogući praćenje na strani poslužitelja za nenadzirani rad.
  13. Kliknite trčanje za početak revizije.

Generirajte izvješća o reviziji upitom tablici praćenja:

  1. Izradite upite koji sažimaju pristup po korisniku i vremenskom razdoblju.
  2. Prepoznajte neobične obrasce pristupa ili aktivnosti izvan radnog vremena.
  3. Dokumentirajte neuspješne pokušaje prijave za sigurnosnu provjeru.
  4. Izvoz podataka revizije u sustave za izvještavanje radi dokumentacije o usklađenosti.
  5. Arhivirajte dovršene tragove revizije u skladu s pravilima zadržavanja.

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

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

Izradite tragove spremne za ponovnu reprodukciju pomoću ovih koraka:

  1. Izradite novi trag pod nazivom "Snimanje radnog opterećenja".
  2. odabrati TSQL_Replay iz padajućeg izbornika predložaka.
  3. Ovaj predložak uključuje sve potrebne događaje i stupce za reprodukciju.
  4. Kliknite Odabir događaja Tab.
  5. Primijenite filtere ako želite obuhvatiti određene segmente radnog opterećenja.
  6. Omogući Spremi u datoteku.
  7. Navedite putanju 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 za početak snimanja.

Snimanje tijekom 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 sustava:

  1. Otvorite snimljenu datoteku traga u SQL Server Profiler.
  2. Pregledajte distribuciju događaja prema vrsti i vremenu.
  3. Izračunajte agregatne metrike potrošnje resursa.
  4. Identificirajte razdoblja vršne aktivnosti i uska grla resursa.
  5. Koristite trag za analizu Savjetnika za podešavanje mehanizma baze podataka.
  6. Ponovite praćenje na testnim sustavima kako biste potvrdili promjene.

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

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

Korupcija baze podataka predstavlja jednu od najozbiljnijih prijetnji integritetu podataka i pouzdanosti sustava. 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čni događaji pogrešaka koji ukazuju na potencijalnu korupciju

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

13.3 Sumnjiva ponašanja baze podataka i obrasci upozorenja

  • Ponovljena vremenska ograničenja upita na određenim objektima
  • Kršenja pristupa i rušenja aplikacija
  • Neobično grupiranje pogrešaka

13.4 Pokretanje DBCC CHECKDB naredbe na temelju nalaza Profilera

If SQL Server Profiler pronalazi sumnjive greške, možete koristiti DBCC CHECKDB za potpunu provjeru baze podataka. Zatim izvršite popravak 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 se poslužiti alat za oporavak SQL-a treće strane.

14. Česta pitanja

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

O: Da, SQL Server Profiler je još uvijek uključen u SQL Server 2022 i SQL Server Management Studio, unatoč 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 s grafičkim korisničkim sučeljem koji se povezuje s SQL Trace mehanizmom koji se izvršava unutar SQL ServerSQL Trace je temeljna tehnologija koja zapravo bilježi događaje. Tragove možete stvoriti pomoću Profilerovog sučelja ili izravno putem T-SQL pohranjenih procedura poput sp_trace_create. Profiler omogućuje jednostavniju 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 obuhvaća 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 sustavima. Praćenja na strani poslužitelja imaju manji utjecaj od praćenja na strani klijenta. Uvijek koristite filtere kako biste smanjili količinu događaja i prvo testirajte praćenje u okruženjima koja nisu u produkciji.

P: Mogu li trčati SQL Server Profiler na produkcijskim poslužiteljima?

O: Možete trčati SQL Server Profiler na produkcijskim poslužiteljima, ali budite oprezni. Koristite visoko selektivne filtere, ograničite trajanje praćenja i preferirajte praćenja na strani poslužitelja kako biste smanjili utjecaj. Pokrenite produkcijska praćenja tijekom razdoblja niske aktivnosti kad god je to moguće. Za kontinuirano praćenje proizvodnje, razmislite o proširenim događajima ili pohrani upita, jer nude niže opterećenje.

P: Koje dozvole trebam koristiti SQL Server Profiler?

A: Za stvaranje i pokretanje tragova potrebna vam je dozvola ALTER TRACE. Članovi fiksne uloge poslužitelja sysadmin automatski imaju ovu dozvolu. Za korisnike koji nisu sysadmin, izričito dodijelite dozvolu ALTER TRACE. Osim toga, potrebna su vam odgovarajuća dopuštenja za spremanje podataka praćenja u datoteke ili tablice na temelju vaše konfiguracije.

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

A: Nedostatak događaja obično je posljedica previše restriktivnih filtera ili prelijevanja međuspremnika. Pregledajte konfiguraciju filtera kako biste bili sigurni da ne isključuje željene događaje. Prelijevanje međuspremnika događa se kada SQL Server Ne mogu dovoljno brzo zapisivati ​​događaje, obično s nefiltriranim tragovima na zauzetim sustavima. Dodajte filtere za smanjenje količine događaja ili povećanje performansi ulazno/izlaznih operacija diska. Provjerite poruke o pogreškama koje pokazuju da događaji nisu zabilježeni.

P: Kako mogu uhvatiti informacije o zastoju s SQL Server Profiler?

A: Izradite trag koji uključuje događaje Lock:Deadlock i Lock:Deadlock Chain iz kategorije Locks. Provjerite je li odabran stupac TextData jer sadrži XML grafa zastoja. Kada dođe do zastoja, kopirajte XML iz stupca TextData, spremite 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 tablice?

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

P: Mogu li automatizirati SQL Server Prikupljanje tragova profilera?

A: Da, automatizirajte prikupljanje tragova pomoću tragova na strani poslužitelja stvorenih pomoću pohranjenih procedura T-SQL-a. Napišite skripte pomoću sp_trace_create i povezanih procedura, a zatim ih zakažite. SQL Server Poslovi agenta. Ovaj pristup omogućuje 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 ovisi o vašim ciljevima. Za rješavanje specifičnih problema, pokrenite praćenje dok reproducirate problem, obično 5-30 minuta. Za analizu performansi, snimite barem jedan sat tijekom razdoblja najveće aktivnosti. Za analizu opterećenja ili planiranje kapaciteta, prikupite nekoliko sati u različitim vremenskim razdobljima. Uvijek zaustavite praćenje kada je praćenje završeno kako biste oslobodili resurse.

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

A: Omogućite prebacivanje datoteka u svojstvima praćenja kako biste stvorili 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. Redovito arhivirajte ili brišite stare datoteke praćenja kako biste upravljali prostorom na disku.

P: Kako mogu pronaći upite koji uzrokuju visoku upotrebu CPU-a?

A: Izradite trag s događajima SQL:BatchCompleted i RPC:Completed. Uključite stupce CPU, Duration i TextData. Filtrirajte prema Duration kako biste uhvatili samo upite koji prelaze prag poput 1000 milisekundi. Nakon prikupljanja podataka, sortirajte prema stupcu CPU silaznim redoslijedom. Upiti na vrhu troše najviše procesorskog vremena. Pregledajte ove upite za mogućnosti optimizacije poput nedostajućih indeksa ili neučinkovite logike.

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

A: SQL Server Profiler može snimiti informacije o planu izvršenja putem događaja Showplan XML u kategoriji Performanse. Odaberite događaje Showplan XML ili Showplan XML Statistics Profile za snimanje cjelovitih planova izvršenja. Stupac TextData sadrži XML podatke plana. Međutim, za rutinsku analizu plana izvršenja, SQL Server Značajke grafičkog plana izvršenja Management Studija ili Query Store pružaju jednostavnije alternative.

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

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

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

A: Koristite filtre stupaca za izoliranje određenih aplikacija ili korisnika. Za aplikacije filtrirajte prema stupcu ApplicationName koristeći naziv naveden u nizu za povezivanje. Za korisnike filtrirajte prema stupcu LoginName pomoću SQL Server prijava ili naziv Windows računa. Kombinirajte više filtera za dodatno sužavanje fokusa, kao što je filtriranje prema nazivu aplikacije i nazivu baze podataka za praćenje aktivnosti jedne aplikacije u određenoj bazi podataka.

15. Zaključak i sljedeći koraci

15.1 ključna zaključka

SQL Server Profiler ostaje vrijedan alat za rješavanje problema s ad-hoc bazama podataka unatoč svom zastarjelom statusu. Jednostavno sučelje 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 poslužitelja za produkcijska okruženja i ograničavanje trajanja tragova na potrebna razdoblja. Odaberite samo bitne događaje i stupce kako biste smanjili opterećenje. Spremite tragove u datoteke umjesto u tablice radi boljih performansi tijekom snimanja.

15.2 Kretanje naprijed: Prihvaćanje modernih alata

Prijelaz iz 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 priprema za budućnost SQL Server verzije. Započ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. Kombinirajte Query Store s ciljanim sesijama proširenih događaja za sveobuhvatno praćenje.

15.3 Dodatni izvori

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

Službena Microsoftova dokumentacija

Resursi zajednice

  • SQL Server Central – Članci, forumi i skripte za stručnjake za baze podataka
  • Stack Overflow SQL Server Oznaka – Pitanja i odgovori zajednice za specifična pitanja o rješavanju problema
  • Reddit r/SQLServer – Forum za raspravu o SQL Server teme i savjeti
  • Forumi SQLServerCentral.com – Aktivne rasprave zajednice o profiliranju i performansama
  • MSDN SQL Server Forumi – Forumi za podršku zajednice koje hostira 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čna razina SQL Server sadržaj od vodećih u industriji
  • microsoft SQL Server Blog – Službena ažuriranja proizvoda i najave značajki
  • Jednostavan razgovor – praktičan SQL Server tutorijali i studije slučaja

Obuka i certifikacija

knjige

  • SQL Server Podešavanje performansi upita – Sveobuhvatan vodič za optimizaciju performansi
  • PRO SQL Server Interni dijelovi – 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 pomoćni programi

  • SQL Server Studio za upravljanje – Primarno sučelje za SQL Server Profiler
  • Azure DataStudio – Moderni alat za baze podataka za više platformi
  • sp_WhoIsActive – Popularna pohranjena procedura za nadzor 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 Autor:

Yuan Sheng je viši administrator baze podataka (DBA) s preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka poduzeća. Uspješno je riješio stotine scenarija oporavka baza podataka u financijskim uslugama, zdravstvu i proizvodnim organizacijama.

Yuan se specijalizirao 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 Always Oni razvoj automatiziranih strategija sigurnosnog kopiranja i oporavka za ključne poslovne sustave.

Svojim tehničkim znanjem i praktičnim pristupom, Yuan se usredotočuje na stvaranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima u rješavanju složenih SQL Server učinkovito rješava izazove. Ostaje u toku s najnovijim SQL Server izdanja i Microsoftove razvojne tehnologije baza podataka, redovito testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.

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

Podijeli sada: