1. Introduktion til SQL Server Profiler
1.1 Hvad er SQL Server Profiler og hvorfor vi har brug for det?
SQL Server Profiler er et grafisk brugergrænsefladeværktøj til overvågning og registrering af hændelser, der opstår indenfor SQL ServerDenne kraftfulde diagnoseostic-værktøjet giver databaseadministratorer og -udviklere mulighed for at observere databasemotoraktivitet i realtid, hvilket hjælper med at identificere flaskehalse i ydeevnen, fejlfinde applikationsproblemer og revidere sikkerhedshændelser.
1.2 SQL Server Profiler i 2025: Aktuel status og alternativer
Microsoft udfaset SQL Server Profilertarting med SQL Server 2016, anbefalet Udvidede arrangementer som erstatningsteknologi. Værktøjet er dog stadig tilgængeligt i den nuværende SQL Server versioner inklusive SQL Server 2022 og bruges stadig i vid udstrækning af databaseprofessionelle.
1.3 Hvem bør bruge denne vejledning
- Denne vejledning henvender sig til databaseadministratorer, der har brug for at overvåge SQL Server instanser, diagnosticere ydeevneproblemer og sikre systemets pålidelighed. Databaseadministratorer vil finde praktisk vejledning til at registrere spor, analysere hændelser og implementere overvågningsstrategier.
- Applikationsudviklere drager fordel af at forstå, hvordan deres kode interagerer med SQL ServerSQL Profiler hjælper udviklere med at identificere ineffektive forespørgsler, validere applikationsadfærd og foretage fejlfinding i databaser.
- Performanceanalytikere og konsulenter vil opdage avancerede teknikker til arbejdsbelastningsanalyse, kapacitetsplanlægning og systemoptimering. Den omfattende dækning af sporkonfiguration, filtrering og analyse muliggør grundige vurderinger af databaseydelsen.
2. forståelse SQL Server Grundlæggende om profilering
2.1 Hvordan SQL Server Profiler Works
SQL Server Profiler fungerer som en klientapplikation, der opretter forbindelse til SQL Trace-motoren, der kører indeni SQL ServerNår du opretter en sporing, overvåger databaseprogrammet angivne hændelser og registrerer dem i henhold til din konfiguration. Sporingsprogrammet indsamler hændelsesdata med minimal indflydelse på serverens ydeevne, når det er korrekt konfigureret.
Den underliggende SQL Trace-infrastruktur bruger lette event hooks i hele databasemotoren. Når en hændelse indtræffer, der matcher din trace-definition, registrerer motoren relevante oplysninger og sender dem enten til Profiler-grænsefladen eller gemmer dem i en fil eller tabel. Denne arkitektur muliggør fleksibel dataindsamling uden at ændre programkode.
2.2 Nøglebegreber og terminologi
2.2.1 Events
Begivenheder repræsenterer specifikke hændelser inden for SQL Server som sporingsprogrammet kan registrere. Hver hændelse svarer til en bestemt databasehandling eller systemaktivitet. SQL Server Profiler organiserer begivenheder i logiske kategorier for nemmere konfiguration.
Almindelige hændelseskategorier omfatter TSQL til udførelse af forespørgsler, lagrede procedurer til procedurekald, låse til samtidighedsovervågning og fejl og advarsler til sporing af undtagelser. Valg af passende hændelser bestemmer, hvilke oplysninger din sporing registrerer, og påvirker direkte sporingens anvendelighed og ydeevne.
Forståelse af hændelsestyper hjælper dig med at konfigurere effektive sporinger. RPC:Completed-hændelser registrerer fuldførelser af eksterne procedurekald, SQL:BatchCompleted-hændelser sporer ad hoc-forespørgselsbatches, og Lock:Deadlock-hændelser identificerer deadlock-forekomster. Vælg hændelser, der stemmer overens med dine specifikke fejlfindings- eller overvågningsmål.
2.2.2 Datakolonner
Datakolonner definerer, hvilke oplysninger sporingen indsamler for hver hændelse. Almindelige kolonner omfatter TextData for den faktiske SQL-sætning, Duration for udførelsestid, CPU for processorudnyttelse, Reads for logiske disklæsninger og Writes for logiske diskskrivninger.
Vigtige kolonner varierer afhængigt af use case. Fejlfinding af ydeevne kræver typisk kolonnerne Varighed, CPU, Læsning og Skrivning. Sikkerhedsrevision kræver kolonnerne LoginName, DatabaseName og ObjectName. Programfejlfinding drager fordel af kolonnerne ApplicationName, SPID og Error.
Hvis du kun vælger nødvendige kolonner, reduceres sporingsoverhead og analysen forenkles. Undgå at registrere alle tilgængelige kolonner, medmindre det er specifikt nødvendigt. Hver ekstra kolonne øger mængden af indsamlede og behandlede data, hvilket potentielt kan påvirke serverens ydeevne.
2.2.3-filtre
Filtre begrænser, hvilke hændelser sporet registrerer, baseret på bestemte kriterier. Korrekt konfigurerede filtre reducerer sporvolumen dramatisk, hvilket gør analysen håndterbar og minimerer påvirkningen af ydeevnen. Filtre evaluerer hændelsesdata før registrering, hvilket forhindrer unødvendig dataindsamling.
Almindelige filterkriterier inkluderer DatabaseName for at fokusere på specifikke databaser, ApplicationName for at isolere bestemte applikationer, Duration for kun at registrere langsomme operationer og LoginName for at spore specifikke brugere. Kombination af flere filtre skaber præcise sporingsdefinitioner, der registrerer præcis det, du har brug for.
Ydelsesbevidst filtrering er afgørende for produktionsmiljøer. Filtrer altid efter DatabaseName eller ApplicationName for at undgå at registrere systemaktivitet. Angiv minimumsgrænser for varighed for at ignorere hurtigteksekverende forespørgsler. Brug TextData-filtre forsigtigt, da de kræver strengsammenligninger, der øger overhead.
2.2.4 Sporingsskabeloner
Sporingsskabeloner giver forudkonfigurerede valg af hændelser, kolonner og filter til almindelige scenarier. SQL Server Profiler indeholder flere indbyggede skabeloner, der fungerer somtarSporingspunkter til oprettelse af spor. Brugerdefinerede skabeloner gemmer dine konfigurationer til genbrug på tværs af flere sporingssessioner.
Standardskabelonen registrerer et generelt sæt af hændelser, der er egnede til grundlæggende overvågning. TSQL-skabelonen fokuserer på udførelse af forespørgsler med minimal overhead. Tuning-skabelonen indsamler hændelser specifikt til analyse af Database Engine Tuning Advisor. Hver skabelon afbalancerer informationsregistrering mod ydeevnepåvirkning.
Oprettelse af brugerdefinerede skabeloner sparer tid og sikrer konsistens på tværs af sporingssessioner. Konfigurer en sporing med dine foretrukne hændelser, kolonner og filtre, og gem den derefter som skabelon. Brugerdefinerede skabeloner bliver særligt værdifulde, når du gentagne gange foretager fejlfinding af lignende problemer.
3. At få Started med SQL Server Profiler
3.1 Systemkrav og forudsætninger
SQL Server Profiler leveres medfølgende SQL Server Management Studio og understøtter alle aktuelt vedligeholdte SQL Server versioner, fra SQL Server 2016 til 2022.
Tilladelseskrav bestemmer, hvem der kan oprette og køre spor. Medlemmer af den faste serverrolle sysadmin har ubegrænset adgang til SQL Server Profiler-funktionalitet. For ikke-sysadministratorbrugere giver ALTER TRACE-tilladelsen mulighed for at oprette og administrere spor.
Netværksovervejelser gælder ved sporing af eksterne servere. Sporing på klientsiden kræver kontinuerlig netværksforbindelse mellem din arbejdsstation og SQL Server f.eks. Afbrudte forbindelser stopper spor på klientsiden og kan potentielt miste registrerede data. Spor på serversiden undgår denne begrænsning ved at køre udelukkende på databaseserveren.
3.2 Sådan starter du SQL Server Profiler
3.2.1 Starting fra SQL Server Management Studio (SSMS)
Følg disse trin for at starte SQL Server Profiler fra SSMS:
- Åbne SQL Server Management Studio og opret forbindelse til enhver SQL Server instans.
- Klik på knappen Værktøjer menuen i den øverste menulinje.
- Type SQL Server Profiler fra dropdown menuen.
- SQL Server Profiler-applikationen åbnes i et nyt vindue.
3.2.2 Starting fra Windows Start Menu
Adgang SQL Server Profiler direkte fra Windows ved hjælp af disse trin:
- Klik på Windows Starten .
- Type SQL Server Profiler i søgefeltet.
- Type SQL Server Profiler fra søgeresultaterne.
- Applikationen starter uden aktive forbindelser.
Alternativt kan du navigere gennem Start menuen herrarchy:
- Åbne Starten menu.
- Find den microsoft SQL Server Værktøjer mappe.
- Udvid mappen, og klik på SQL Server Profiler.
3.2.3 Forbindelse til SQL Server tilfælde
Efter lancering SQL Server Profiler, opret en forbindelse ved at følge disse trin:
- Klik File (Felt) i menulinjen.
- Type Nyt spor fra dropdown menuen.
- Opret forbindelse til server dialogboksen vises.
- Indtast dit servernavn i Server navn felt.
- Vælg Windows-godkendelse or SQL Server Godkendelse.
- Hvis du bruger SQL Server Godkendelse, indtast dine loginoplysninger.
- Klik Tilslut at etablere forbindelsen.
For fjernforbindelser skal du angive det fulde servernavn inklusive instansnavn, hvis det er relevant.cabf.eks. Brug formatet SERVERNAVN\INSTANSNAVN til navngivne instanser. Kontroller netværksforbindelse og firewallindstillinger, hvis forbindelsesforsøg mislykkes.
4. Oprettelse og konfiguration SQL Server Spor
4.1 Oprettelse af din første sporing ved hjælp af en skabelon
Opret dit første spor ved hjælp af disse trin:
- Launch SQL Server Profiler.
- Klik File (Felt) -> Nyt spor og opret forbindelse til din tarfå serveren.
- Sporingsegenskaber dialogboksen vises.
- Indtast et beskrivende navn i Spornavn felt.
- Vælg en skabelon fra Brug skabelonen dropdown.
- Vælg den Standard (standard) skabelon til generel overvågning. Eller en anden skabelon til andre formål. Skabelonen indeholder forudkonfigurerede hændelser, kolonner og filtre til almindelige scenarier.
- Klik Kør til staroptager begivenheder med det samme.
4.2 Tilpas din sporing
Mange gange kan skabelonerne ikke opfylde dine krav. I så fald kan du tilpasse din sporing fuldt ud:
- I Sporingsegenskaber dialogen.
- Vælg Blank skabelon fra Brug skabelonen dropdown.
- Klik på knappen Udvalg af begivenheder I fanen "Skriv en kommentar", kan du nu tilpasse alle hændelser, datakolonner og filtre baseret på dine behov. Vi vil diskutere dem i de følgende afsnit.
4.3 Valg af begivenheder, der skal optages
Du kan vælge en begivenhed i Udvalg af begivenheder fane:
- Klik på knappen + ikonet ud for Begivenhedskategorien for at udvide den.
- Klik på afkrydsningsfeltet ud for begivenheden for at vælge den.
4.3.1 Forståelse af hændelseskategorier
SQL Server Profiler organiserer hændelser i kategorier for logisk gruppering. Kategorien Stored Procedures inkluderer hændelser til procedureudførelse, herunder SP:S.tarting, SP:Completed og SP:StmtCompleted. Disse hændelser sporer kald af lagrede procedurer og udførelse af individuelle sætninger i procedurer.
TSQL-kategorien registrerer udførelse af ad-hoc-forespørgsler med hændelser som SQL:BatchStarting og SQL:BatchCompleted. Disse hændelser sporer forespørgsler, der sendes direkte til SQL Server uden for lagrede procedurer.
Kategorien Låse overvåger samtidighedsrelaterede hændelser, herunder Lås:Opnået, Lås:Frigivet, Lås:Deadlock og Lås:Timeout. Brug disse hændelser til at diagnosticere blokerings- og deadlock-problemer, der påvirker applikationens ydeevne.
Kategorien Fejl og advarsler registrerer undtagelseshændelser, herunder undtagelse, opmærksomhed og brugerfejlmeddelelse. Disse hændelser hjælper med at identificere programfejl og SQL Server advarsler under sporingssessioner.
4.3.2 Valg af de rigtige begivenheder til dit scenarie
Ydelsesovervågning kræver hændelser, der registrerer ressourceforbrug. Vælg RPC:Completed og SQL:BatchCompleted for at spore forespørgselsudførelse. Medtag kolonnerne Varighed, CPU, Læsning og Skrivning for at måle ressourceforbruget. Disse hændelser danner grundlag for at identificere flaskehalse i ydeevnen.
Sikkerhedsrevision kræver hændelser, der sporer godkendelse og autorisation. Vælg Audit Login, Audit Logout, Audit Login Failed og Object:Opened for at overvåge databaseadgang. Medtag kolonnerne LoginName, DatabaseName og ObjectName for at identificere, hvem der har adgang til hvilke ressourcer.
Fejlfindingsscenarier drager fordel af omfattende hændelsesregistrering. Inkluder lagrede procedurehændelser, SQL-batchhændelser og fejlhændelser for at spore komplette udførelsesflows. Registrer yderligere kontekst med SPID, ApplicationName og HostNavngiv kolonner for at korrelere begivenheder med specifikke sessioner.
4.4 Konfiguration af datakolonner
Som standard vil alle dens datakolonner blive valgt (afkrydset), når du vælger en begivenhed. Du kan fravælge unødvendige kolonner for at reducere overhead og forenkle analysen:
Vigtige kolonner for hvert spor inkluderer EventClass til at identificere hændelsestypen, TextData til at registrere den faktiske SQL-sætning, LoginName til at identificere den udførende bruger og StarTidspunkt for at tidsstempel, hvornår hændelsen fandt sted. Disse kolonner giver grundlæggende kontekst for hver registreret hændelse.
Ydelsesrelaterede kolonner måler ressourceforbrug. Varighed angiver, hvor lang tid en hændelse tog i mikrosekunder. CPU viser processortid i millisekunder. Læsninger tæller logiske sidelæsninger. Skrivninger sporer logiske sideskrivninger. Disse målinger identificerer ressourcekrævende operationer, der kræver optimering.
Kolonnerne Sikkerhed og revision sporer dataadgangsmønstre. DatabaseName identificerer, hvilken database der blev tilgået. Objektnavn angiver den involverede tabel eller det involverede objekt. ApplicationName afslører, hvilken applikation der startede aktiviteten. Sammen giver disse kolonner omfattende revisionsspor.
4.5 Opsætning af filtre for at reducere støj
4.5.1 Fælles filterkriterier
Konfigurer filtre ved hjælp af følgende fremgangsmåde:
- Åbne Sporingsegenskaber dialogen.
- Klik på knappen Udvalg af begivenheder fane.
- Klik Kolonnefiltre knappen nederst til højre.
- Vælg en kolonne fra listen til venstre.
- Konfigurer filterkriterier i panelet til højre.
- Klik OK for at anvende filteret.
Filtre til programnavne isolerer aktivitet fra specifikke programmer. Udvid kolonnen Programnavn i filterdialogboksen, og indtast dit programnavn i lignende felt og SQL Server Profiler registrerer kun hændelser fra den pågældende applikation. Dette filter er uvurderligt ved fejlfinding af applikationsspecifikke problemer.
Filtre til databasenavne begrænser registrering til specifikke databaser. Filtrer efter Databasenavn for at udelukke systemdatabaseaktivitet og fokusere på dine applikationsdatabaser. Indtast databasenavne i lignende or Ens feltet afhængigt af om du har brug for jokertegn-matchning.
Varighedsfiltre registrerer kun langsomt kørende operationer. Angiv en minimumstærskel i Større end eller lig feltet under kolonnen Varighed. Hvis du f.eks. angiver Varighed >= 1000, registreres kun hændelser, der tager mere end et sekund, og hurtigt kørende forespørgsler filtreres fra.
Brugernavnsfiltre sporer specifik brugeraktivitet. Filtrer efter LoginName for at overvåge bestemte databasebrugere. Denne tilgang hjælper med at identificere, hvilke brugere der udfører problematiske forespørgsler eller tilgår følsomme data.
4.4.2 Bedste fremgangsmåder for filtrering
Effektiv filtrering balancerer datafangst med påvirkning af ydeevnen. Anvend altid mindst ét filter for at forhindre, at overdreven systemaktivitet registreres. Filtrene DatabaseName og ApplicationName bør være dine startingpunkt for most spor.
Undgå for brede spor i produktionsmiljøer. Ufiltrerede spor indfanger enorme mængder data, hvilket potentielt forringer serverens ydeevne og gør analyse upraktisk. Angiv specifikke filterkriterier, der tarFå dine mål for fejlfinding.
Test filtre før implementering i produktion. Kør først spor mod udviklings- eller testmiljøer for at kontrollere, at filtrene registrerer forventede hændelser uden for store overheadomkostninger. Juster filterkriterierne baseret på mængden af registrerede data.
4.5 Arbejde med sporingsskabeloner
4.5.1 Oversigt over indbyggede skabeloner
Standardskabelonen giver en afbalanceret hændelsesregistrering, der er egnet til generel overvågning. Den omfatter almindelige forespørgselsudførelseshændelser, kald af lagrede procedurer og grundlæggende fejlsporing. Brug denne skabelon, når du har brug for omfattende overblik uden at vide præcis, hvad du skal kigge efter.
TSQL-skabelonen fokuserer specifikt på udførelse af forespørgsler med minimal hændelsesvalg. Den registrerer SQL:BatchCompleted- og RPC:Completed-hændelser med essentielle kolonner til performanceanalyse. Denne skabelon tilbyder lavere overhead end standardskabelonen.
Tuning-skabelonen optimerer hændelsesudvælgelse til analyse i Database Engine Tuning Advisor. Den registrerer hændelser og kolonner, der kræves til arbejdsbelastningsanalyse og indeksanbefalinger. Brug denne skabelon, når du forbereder spor til automatisk ydeevnejustering.
TSQL_Replay-skabelonen indeholder alle hændelser og kolonner, der er nødvendige for sporingsgengivelsesfunktionalitet. Den indsamler omfattende udførelsesdetaljer, så du kan reproducere registrerede arbejdsbelastninger i testmiljøer. Denne skabelon genererer større sporingsfiler på grund af omfattende dataindsamling.
4.5.2 Oprettelse af brugerdefinerede skabeloner
Opret brugerdefinerede skabeloner ved at følge disse trin:
- Klik File (Felt) -> Skabeloner -> Ny skabelon …
- Indtast et beskrivende navn i Nyt skabelonnavn felt.
- Valgfrit, tjek Basér den nye skabelon på en eksisterende og vælg en eksisterende skabelon, hvis du ikke vil bygge fra bunden:
- Klik på knappen Valg af begivenhed Tilpas sporingsskabelonen med dine ønskede hændelser, kolonner og filtre, ligesom du gør. gør med et normalt spor.
- Klik Gem for at gemme skabelonen.
Eksportér skabeloner til deling med teammedlemmer eller sikkerhedskopiering:
- Klik File (Felt) -> Skabeloner -> Eksporter skabelon.
- Vælg den skabelon, du vil eksportere.
- Naviger til din ønskede gemningsplacering.
- Indtast et filnavn og klik Gem.
- Del *.tdf-filen (SQL Server Profiler-skabelonfil) med andre SQL Server Profiler-brugere.
4.6 Lagring af sporingsoutput
Som standard SQL Server Profiler viser hændelserne i sporingsvinduet, men gemmer dem IKKE. Du kan vælge at gemme sporingsdataene i en fil eller tabel i Sporingsegenskaber dialogboksen, når du opretter et nyt spor.
4.6.1 Gem til fil
- I Sporingsegenskaber dialog, tjek Gem til fil.
- Klik på mappeikonet for at åbne filbrowseren.
- Naviger til din ønskede gemningsplacering.
- Indtast et filnavn med filtypenavnet .trc.
- Klik Gem.
- sæt Angiv maksimal filstørrelse at begrænse størrelsen på den enkelte fil.
- Aktiver Aktivér filoverførsel at oprette flere filer.
- Aktivér valgfrit Server behandler sporingsdata til spor på serversiden.
Administration af filstørrelse forhindrer udtømning af diskplads. Indstil den maksimale filstørrelse til en rimelig værdi, f.eks. 500 MB eller 1 GB, baseret på tilgængelig diskplads og forventet sporingsvarighed. Filoverførsel opretter automatisk nye filer, når størrelsesgrænsen er nået, og tilføjer et tal til filnavnet.
4.6.2 Gem i tabel
- I Sporingsegenskaber dialog, tjek Gem i tabellen.
- Destinationstabel dialogboksen vises.
- Vælg serveren fra Server dropdown.
- Vælg databasen fra Database dropdown.
- Vælg en eksisterende tabel, eller indtast et nyt tabelnavn i Bordlampe felt.
- Klik OK at bekræfte.
- Valgfrit indstillet Angiv maksimalt antal rækker at begrænse bordstørrelsen.
Ydelsesovervejelser gælder, når der gemmes i tabeller. Tabellagring introducerer yderligere overhead sammenlignet med fillagring, fordi SQL Server skal skrive sporingsdata gennem lagringsprogrammet. Brug tabellagring, når du skal forespørge sporingsdata med det samme med T-SQL.
Dataopbevaring bliver vigtig for tabelbaserede spor. Indstil maksimale rækkegrænser for at forhindre, at tabeller vokser for store. Arkiver eller slet gamle spordata regelmæssigt for at opretholde ydeevnen. Overvej at partitionere store sportabeller for bedre administration.
5. Drift og styring SQL Server Spor
5.1 StarSporing, pausering og stop
Administrer sporingsudførelse ved hjælp af knapperne på værktøjslinjen:
- Den grønne Starten knappen begynder at optage begivenheder i henhold til din konfiguration.
- Klik Pause til temporarsuspendér dataindsamlingen uden at miste forbindelsen.
- Klik Stands for at afslutte sporingen og lukke forbindelsen.
Via menupunkter:
Ved at højreklikke på en hvilken som helst post i sporingsvinduet:
Administration af sporingslivscyklus påvirker serverressourcer. Aktive spor forbruger hukommelse og processorkraft proportionalt med mængden af hændelser, der registreres. Sæt spor på pause i perioder, hvor overvågning ikke er nødvendig, for at reducere overhead. Stop spor helt, når analysen er færdig, for at frigøre ressourcer.
Sporing på klientsiden kræver en aktiv Profiler-forbindelse. Lukning af SQL Server Profiler-vinduet stopper spor på klientsiden med det samme. Minimer Profiler-vinduet i stedet for at lukke det for at holde spor kørende, mens du arbejder i andre applikationer.
5.2 Sporingsovervågning i realtid
Overvåg registrerede hændelser, mens de forekommer i hovedsporingsvinduet. Hver række repræsenterer en enkelt hændelse med kolonner, der viser hændelsesegenskaber. Gitteret opdateres løbende under aktive spor og viser most seneste begivenheder nederst som standard.
Identificer mønstre og problemer ved at observere hændelsesfrekvens og -karakteristika. Hændelser med lang varighed indikerer ydeevneproblemer. Hyppige fejlhændelser tyder på applikationsproblemer. Usædvanlig loginaktivitet kan være tegn på sikkerhedsproblemer. Overvågning i realtid muliggør øjeblikkelig reaktion på nye problemer.
Rul gennem registrerede hændelser for at undersøge specifikke forekomster. Klik på en vilkårlig række for at vælge en hændelse og se dens alle detaljer. Dobbeltklik på hændelser for at åbne detaljerede egenskabsdialogbokse, der viser alle kolonneværdier. Brug scroll lock-funktionen til at forhindre automatisk rulning, mens du gennemgår historiske hændelser.
5.3 Håndtering af flere samtidige spor
Samtidig kørsel af flere spor giver fleksibilitet til komplekse overvågningsscenarier. Opret separate spor for forskellige aspekter af databaseaktivitet, f.eks. ét spor til ydeevneovervågning og et andet til sikkerhedsrevision. Hvert spor kører uafhængigt med sin egen konfiguration.
Ressourceallokering bliver kritisk med flere spor. Hvert aktivt spor bruger hukommelse, CPU og potentielt disk-I/O. Begræns antallet af samtidige spor, og sørg for, at hvert spor bruger passende filtre for at minimere overhead. Overvåg serverens ydeevne, mens du kører flere spor.
Koordinér sporingstimingen for at forhindre overlappende spor med høj overhead. Kør om muligt ressourcekrævende spor i perioder med lav aktivitet. Planlæg forskellige spor på forskellige tidspunkter i stedet for at køre alt samtidigt.
5.4 Klientsidespor vs. serversidespor
Som standard er et nyoprettet spor et klientsidespor, som kræver en aktiv forbindelse fra SQL Server Profiler til databaseserveren. Sporingen stopper øjeblikkeligt, hvis forbindelsen erost eller Profiler er lukket.
Du kan også oprette en serversidesporing, som kører udelukkende på SQL Server instans uden at kræve en aktiv Profiler-forbindelse. Sporing på serversiden fortsætter med at køre, selv efter lukning SQL Server Profiler, skriver data til den angivne filplacering.
Sådan opretter du en serversidesporing:
- Klik på Filer -> Ny sporing …
- I Sporingsegenskaber dialog, tjek Gem til fil
- Angiv filplaceringen og andre indstillinger.
- Aktiver Server behandler sporingsdata for at oprette en serversidesporing.
Ydelsesimplikationerne varierer betydeligt mellem sportyper. Spor på klientsiden skal overføre data over netværket til Profiler-grænsefladen, hvilket øger latenstid og båndbreddeforbrug. Spor på serversiden introducerer mindre overhead, fordi data skrives direkte til disken på serveren.
Brug klientsidesporing til ad hoc-fejlfinding og hurtig diagnosticeringostic-sessioner og situationer, hvor øjeblikkelig visuel feedback er værdifuld. Vælg serversidesporinger til produktionsovervågning, langvarige optagelser og scenarier, der kræver uovervåget drift.
6. Analyse SQL Server Profilerdata
6.1 Åbning og gennemgang af gemte spor
Indlæs gemte sporingsfiler ved hjælp af disse trin:
- Launch SQL Server Profiler.
- Klik File (Felt) -> Åbne -> Sporingsfil.
- Naviger til sporingsfilens placering.
- Vælg .trc-filen, og klik på Åbne.
- Sporingsdataene indlæses i hovedvinduet.
Indlæs sporingstabeller ved at følge denne proces:
- Klik File (Felt) -> Åbne -> Spor tabel.
- Opret forbindelse til serveren hostsporingstabellen.
- Vælg databasen fra Database dropdown.
- Vælg tabellen fra Bordlampe dropdown.
- Klik OK for at indlæse data.
6.2 Filtrering og søgning i sporingsdata
6.2.1 Post-Optagelsesfiltrering
Anvend filtre på indlæste sporingsdata ved hjælp af disse trin:
- Klik Redigere -> Finde eller tryk på Ctrl + F.
- Indtast søgeteksten i Find hvad felt.
- Vælg den kolonne, der skal søges i Kig ind dropdown.
- Klik Find næste for at finde matchende begivenheder.
Kolonnebaseret filtrering forfiner viste data uden at gentage hændelser. Højreklik på en hvilken som helst kolonneoverskrift, og vælg filterindstillinger i kontekstmenuen. Indtast filterkriterier for kun at vise matchende rækker. Denne tilgang fremskynder analysen ved at skjule irrelevante hændelser.
6.2.2 Find specifikke begivenheder
Søgefunktionen hjælper med at finde specifikke hændelser i store sporingsfiler. Brug dialogboksen Søg til at søge efter tekstindhold, hændelsestype eller kolonneværdi. Regulære udtryk muliggør komplekse søgemønstre, når det er nødvendigt.
Bogmærk vigtige begivenheder til hurtig reference under analyse. Højreklik på interessante begivenheder, og vælg bogmærkeindstillinger for at markere dem. Naviger mellem bogmærker ved hjælp af tastaturgenveje eller menukommandoer, hvilket letter sammenligningen af relaterede begivenheder.
6.3 Gruppering og aggregering af begivenheder
Gruppér hændelser efter kolonneværdier for at identificere mønstre og opsummere aktivitet. Højreklik på en hvilken som helst kolonneoverskrift, og vælg Gruppér efter denne kolonne at organisere begivenheder. Grupperede visninger skjuler lignende begivenheder, hvilket gør det nemmere at se overordnede mønstre.
Aggregerede visninger viser statistiske opsummeringer af sporingsdata. Gruppér efter TextData for at se, hvor mange gange hver forespørgsel blev udført. Gruppér efter LoginName for at se aktivitetsoversigter pr. bruger. Aggregering afslører mønstre, der ikke er umiddelbart tydelige i detaljerede hændelseslister.
Udvid og skjul grupper for at dykke ned i specifikke kategorier. Klik på plus- og minusikonerne ud for gruppeoverskrifter for at vise eller skjule grupperede begivenheder. DetterarChikal visning muliggør top-down analyse, starat arbejde med mønstre på overordnet niveau og dykke ned i detaljerne.
6.4 Udpakning af SQL-forespørgsler fra spor
Udtræk forespørgsler fra sporingsdata ved at følge disse trin:
- Find den interessante forespørgsel i sporingsgitteret.
- Klik på rækken for at vælge begivenheden.
- Se den komplette forespørgselstekst i det nederste panel.
- Presse Ctrl + A for at markere al forespørgselstekst.
- Presse Ctrl + C for at kopiere forespørgselsteksten.
- Indsæt forespørgslen i Management Studio til yderligere analyse.
Identificer problematiske forespørgsler ved at sortere efter ydeevnekolonner. Klik på kolonneoverskriften Varighed for at sortere efter udførelsestid. De langsomste forespørgsler vises øverst eller nederst afhængigt af sorteringsretningen. Sorter ligeledes efter CPU, læsning eller skrivning for at identificere ressourcekrævende operationer.
Eksporter forespørgsler til test ved at kopiere dem fra sporings- til forespørgselsvinduerne. Rediger udtrukne forespørgsler for at teste optimeringsstrategier. Sammenlign udførelsesplaner og præstationsmålinger mellem originale og optimerede versioner.
6.5 Korrelation af hændelser og forståelse af udførelsesflow
Forældre-barn-hændelsesrelationer viser udførelseshøjderarchies. SQL:BatchStarting events parent SQL:StmtStarting-hændelser, som igen er forældre til procedureudførelseshændelser. Forståelse af disse relationer hjælper med at spore komplette udførelsesstier gennem din kode.
Transaktionssporing forbinder relaterede hændelser på tværs af tid. Brug SPID-kolonnen til at gruppere hændelser efter session. Inden for en session forekommer hændelser i kronologisk rækkefølge og viser rækkefølgen af handlinger. Denne visning viser, hvordan forskellige handlinger interagerer i transaktioner.
Korrelér hændelser ved at undersøge værdier for delte kolonner. Hændelser med identisk SPID opstod i den samme session. Hændelser med samme ApplicationName kom fra den samme applikation. Brug disse korrelationer til at forstå komplekse udførelsesscenarier.
7. almindelige SQL Server Brugsscenarier for profiler
7.1 Fejlfinding af ydeevne
7.1.1 Identifikation af langsomme forespørgsler
Registrer langsomme forespørgsler ved hjælp af følgende konfiguration:
- Opret et nyt spor ved hjælp af TSQL skabelon.
- I Udvalg af begivenheder fane, verificér SQL:Batchfuldført og RPC:Færdiggjort er valgt.
- Klik Kolonnefiltre.
- Type Varighed fra kolonnelisten.
- Indtast 1000000 i Større end eller lig felt til at registrere forespørgsler, der tager mere end 1 sekund.
- Klik OK og start sporet.
- Kør sporingen i perioder med spidsbelastning.
- Stop sporingen, og sorter efter varighed for at identificere de langsomste forespørgsler.
Varighedsbaseret analyse afslører mønstre for udførelsestid. Sortér registrerede hændelser efter kolonnen Varighed for at se de længst kørende operationer først. Undersøg kolonnen Tekstdata for disse hændelser for at identificere de faktiske forespørgsler, der er ansvarlige for forsinkelser.
CPU- og I/O-intensive forespørgsler kræver forskellige optimeringsmetoder. Sortér efter CPU-kolonne for at finde processorbundne forespørgsler, der kræver algoritmiske forbedringer. Sortér efter læse- eller skrivekolonner for at identificere I/O-bundne forespørgsler, der drager fordel af indeksering eller omskrivning af forespørgsler.
7.1.2 Registrering af blokeringer og fastlåste situationer
Konfigurer blokeringsdetektion ved at følge disse trin:
- Opret et nyt spor.
- I Udvalg af begivenheder fane, udvide Låse.
- Type Lås: Fastlåst og Lås: Deadlock-kæde.
- Udvid Fejl og advarsler.
- Type Rapport om blokeret proces.
- Medtag kolonner: SPID, TekstData, Databasenavn, Loginnavn.
- Starspore og overvåge låsehændelser.
Overvågning af låsehændelser afslører samtidighedsproblemer, der påvirker applikationens ydeevne. Lock:Deadlock-hændelser angiver, hvornår SQL Server opdagede og løste fastlåste situationer. Lock:Deadlock Chain-hændelser viser de processer, der er involveret i fastlåste situationer.
Dødlåsediagrammer giver visuelle repræsentationer af dødlåsescenarier. Når en dødlåshændelse opstår, indeholder TextData-kolonnen XML, der beskriver dødlåsen. Kopier denne XML, og åbn den i SQL Server Management Studio for at se det grafiske dødvandediagram, der viser, hvilke processer der blokerede hinanden.
7.1.3 Find manglende indeks
Registrer arbejdsbelastning til indeksanalyse ved hjælp af disse trin:
- Opret et nyt spor ved hjælp af Tuning skabelon.
- Konfigurer sporingen til at gemme i en fil.
- Kør sporingen i repræsentative arbejdsbelastningsperioder.
- Saml mindst et par timers aktivitet.
- Stop sporingen og gem filen.
- Start vejledning til justering af databasemotor.
- Vælg sporingsfilen som arbejdsbelastningskilde.
- Kør analysen for at modtage indeksanbefalinger.
Integration med Database Engine Tuning Advisor automatiserer indeksanbefalinger. Tuning Advisor analyserer den registrerede arbejdsbelastning og foreslår indekser, der kan forbedre ydeevnen. Gennemgå anbefalingerne omhyggeligt før implementering, idet du tager højde for lageroverhead og vedligeholdelse.osts.
7.2 Fejlfinding af applikationer
7.2.1 Fejlfinding af programfejl
Spor programfejl ved hjælp af denne konfiguration:
- Opret et nyt spor.
- Udvid Fejl og advarsler i fanen Valg af begivenheder.
- Type undtagelse, Brugerfejlmeddelelseog Opmærksomhed.
- Medtag kolonner: Fejl, TekstData, Applikationsnavn, SPID.
- Filtrer efter Applikationsnavn at fokusere på din ansøgning.
- Starsporet og reproducer fejlscenariet.
- Gennemgå registrerede fejlhændelser til diagnoseostic-oplysninger.
Fejlsporing afslører undtagelsesdetaljer, der ofte er skjult for applikationer. Fejlkolonnen indeholder SQL Server Fejlnumre. Kolonnen TextData viser fejlmeddelelser og den forespørgsel, der forårsagede fejlen. Kolonnen Alvorlighed angiver fejlalvorlighedsniveauer.
Undtagelsesovervågning registrerer runtime-problemer, herunder begrænsningsovertrædelser, tilladelsesfejl og timeout-hændelser. Korreler fejlhændelser med foregående forespørgselshændelser for at forstå, hvad der udløste undtagelserne.
7.2.2 Sporing af kommunikation mellem applikation og database
Overvåg programaktivitet ved at følge disse trin:
- Opret et nyt spor ved hjælp af Standard skabelon.
- Klik Kolonnefiltre.
- Type Applikationsnavn og indtast dit applikationsnavn i lignende felt.
- Filtrer eventuelt efter HostNavn at isolere specifikke servere.
- Starsporet under applikationshandlinger.
- Gennemgå registrerede hændelser for at se alle databaseinteraktioner.
Filtrering af programnavne isolerer forespørgsler fra specifikke programmer. SQL Server Angiver programnavnet fra forbindelsesstrenge, hvilket gør det nemt at spore individuelle programmer i miljøer med flere programmer. Bekræft, at din forbindelsesstreng inkluderer parameteren Programnavn for effektiv filtrering.
Forbindelsessporing viser sessionslivcyklussen, herunder login, forespørgselsudførelse og logouthændelser. Overvåg oprettelseshastigheden for forbindelser for at identificere problemer med forbindelsespuljer. Overdreven forbindelseschurn indikerer potentielle problemer med programkonfigurationen.
7.2.3 Validering af applikationsadfærd
Bekræft forventet applikationsadfærd ved hjælp af sporingsanalyse. Registrer alle databaseoperationer under en forretningstransaktion, og bekræft, at de korrekte forespørgsler udføres i den rigtige rækkefølge. Sammenlign faktisk registrerede forespørgsler med forventet adfærd for at identificere uoverensstemmelser.
Parametervalidering sikrer, at applikationer sender korrekte værdier til lagrede procedurer og parameteriserede forespørgsler. Undersøg den registrerede forespørgselstekst for at kontrollere, at parameterværdierne stemmer overens med forventningerne. Forkerte parametre forårsager ofte logiske fejl, der manifesterer sig som forkerte forretningsresultater.
7.3 Sikkerhedsrevision
7.3.1 Overvågning af loginforsøg
Konfigurer loginovervågning ved hjælp af disse trin:
- Opret et nyt spor.
- Udvid Security Audit i fanen Valg af begivenheder.
- Type Revisionslogin, Revisionslog udog Revisionslogin mislykkedes.
- Medtag kolonner: Loginnavn, HostNavn, Applikationsnavn, StartTid.
- Start sporet for at overvåge godkendelsesaktivitet.
- Gennemgå mislykkede loginhændelser for potentielle sikkerhedsproblemer.
Vellykkede og mislykkede logins giver omfattende sporing af godkendelse. Audit Login-hændelser registrerer vellykkede godkendelsesforsøg med brugeridentitet og kildeoplysninger. Mislykkede hændelser ved Audit Login indikerer mislykkede loginforsøg, der kan repræsentere angreb eller konfigurationsproblemer.
Godkendelsessporing afslører mønstre i databaseadgang. Overvåg loginfrekvensen for at opdage usædvanlig aktivitet. Flere mislykkede loginforsøg efterfulgt af et vellykket login kan indikere kompromitterede legitimationsoplysninger. Mislykkede logins fra uventede placeringer kræver undersøgelse.
7.3.2 Adgang til og ændringer af sporingsdata
Overvåg dataadgang ved hjælp af denne konfiguration:
- Opret et nyt spor.
- Udvid Security Audit.
- Type Adgang til revisionsdatabaseobjekter.
- Medtag kolonner: ObjectName, Loginnavn, TekstData, Databasenavn.
- Filtrer efter ObjectName at overvåge specifikke følsomme tabeller.
- Starsporet for at registrere adgangsforsøg.
Sporing af SELECT, INSERT, UPDATE og DELETE giver omfattende revision af dataændringer. Registrer SQL:BatchCompleted-hændelser med passende filtre for at overvåge alle dataadgangshandlinger. Filtrer efter ObjectName eller TextData for at fokusere på følsomme tabeller.
Adgang til følsomme data kræver omhyggelig overvågning for at sikre overholdelse af sikkerhedspolitikker. Opret spor specifikt for tabeller, der indeholder personlige oplysninger, økonomiske data eller andre fortrolige oplysninger. Gennemgå adgangsmønstre regelmæssigt for at identificere upassende dataadgang.
Registrer mistænkelig aktivitet ved at analysere forespørgselsmønstre i registrerede spor. Se efter usædvanlige forespørgsler, der ikke matcher normal programadfærd. SELECT-sætninger uden en WHERE-klausul, der henter hele tabeller, kan indikere forsøg på dataudrensning.
Forsøg på eskalering af rettigheder vises som tilladelsesfejl eller forsøg på at udføre administrative kommandoer. Overvåg forespørgsler, der forsøger at få adgang til systemtabeller, ændre serverkonfiguration eller oprette privilegerede konti. Filtrer efter fejlhændelser, og gennemgå kolonnen TextData for mistænkelig aktivitet.
7.4 Kapacitetsplanlægning og arbejdsbyrdeanalyse
Etabler baselines ved at registrere repræsentativ arbejdsbyrde under normal drift. Kør spor i løbet af typiske åbningstider for at forstå standardaktivitetsmønstre. Gem disse spor som præstationsbaselines til fremtidig sammenligning.
Identifikation af spidsbelastning afslører, hvornår dit system oplever maksimal belastning. Registrer spor på tværs af forskellige tidsperioder, herunder åbningstider, batchbehandlingsvinduer og aktivitet efter lukketid. Analysér antallet af hændelser og ressourceforbrug for at identificere spidsbelastningsperioder.
Ressourceudnyttelsesmønstre fremgår af arbejdsbelastningsanalyser. Gruppér hændelser efter tidsintervaller for at se aktivitetsfordelingen i løbet af dagen. Beregn samlede CPU-, disk-I/O- og varighedsmålinger for at kvantificere ressourceforbruget. Brug disse data til at planlægge kapacitetsopgraderinger eller identificere optimeringsmuligheder.
8. Avanceret SQL Server Profileringsteknikker
8.1 Oprettelse af serversidespor med T-SQL
8.1.1 Brug af sp_trace_create og relaterede procedurer
Opret serversidespor programmatisk ved hjælp af T-SQL-lagrede procedurer. Denne tilgang muliggør automatiseret oprettelse og administration af spor uden krav om SQL Server Profilers grafiske brugerflade.
Definer en serversidesporing ved hjælp af denne eksempelkode:
- Deklarer variabler for sporings-ID og filsti.
- Kald sp_trace_create for at oprette et nyt spor.
- Brug sp_trace_setevent til at tilføje begivenheder og kolonner.
- Brug eventuelt sp_trace_setfilter til at konfigurere filtre.
- Kald sp_trace_setstatus til start sporet.
Proceduren sp_trace_create initialiserer en ny sporingsdefinition. Angiv outputfilens sti, maksimale filstørrelse og rollover-indstillinger. Proceduren returnerer et sporings-ID, der bruges i efterfølgende procedurekald til at konfigurere sporingen.
Tilføj hændelser ved hjælp af proceduren sp_trace_setevent. Angiv sporings-ID'et, hændelses-ID'et og kolonne-ID'et for hver hændelses-kolonne-kombination, du vil registrere. Kald denne procedure flere gange for at opbygge komplette sporingskonfigurationer.
Konfigurer filtre med proceduren sp_trace_setfilter. Angiv sporings-ID, kolonne-ID, logisk operator, sammenligningsoperator og filterværdi. Flere filterkald kombineres for at oprette komplekse filterkriterier.
StarUdfør sporet ved at kalde sp_trace_setstatus med statusværdi 1. Stop sporene ved at kalde den samme procedure med statusværdi 0. Slet spordefinitioner ved at kalde med statusværdi 2.
8.1.2 Fordele ved serversidesporing
Reduceret klientoverhead gør serversidesporinger ideelle til produktionsovervågning. Databaseserveren håndterer alle sporingsoperationer uden at forbruge klientmaskinressourcer. Netværksbåndbredde forbruges ikke ved overførsel af hændelser til en klientapplikation.
Automatiseret udførelse muliggør uovervåget sporindsamling. Spor på serversiden fortsætter med at køre efter oprettelsen, selvom der ikke er nogen klientforbindelse. Planlæg sporoprettelse via SQL Server Agentjob til automatiseret overvågning.
Lavere påvirkning af ydeevnen skyldes server-side behandling. Hændelser skrives direkte til disken uden yderligere serialisering eller netværksoverførsel. Bufferstyring optimerer disk I/O for bedre samlet ydeevne.
8.2 Funktionalitet til sporafspilning
8.2.1 Optagelse af spor til afspilning
Opret spor, der er klar til afspilning, ved at følge disse trin:
- Opret et nyt spor ved hjælp af TSQL_genafspilning skabelon.
- Bekræft, at alle nødvendige hændelser og kolonner er valgt.
- Konfigurer sporingen til at gemme i en fil.
- Kør sporingen i den arbejdsbelastningsperiode, du vil registrere.
- Stop sporingen og gem filen.
Påkrævede hændelser og kolonner sikrer fuldstændig sporafspilning. TSQL_Replay-skabelonen indeholder alle nødvendige hændelsestyper og datakolonner. Manglende påkrævede elementer forhindrer vellykket afspilning, så brug altid denne skabelon, når du optager til afspilningsformål.
8.2.2 Genafspilning af spor
Afspil optagede arbejdsbelastninger igen ved hjælp af disse trin:
- In SQL Server Profiler, klik File (Felt) -> Åbne -> Sporingsfil.
- Vælg den sporingsfil, der er klar til afspilning.
- Klik Replay -> Starten.
- Opret forbindelse til tarHent server i afspilningsdialogen.
- Konfigurer afspilningsmuligheder, herunder afspilningsrækkefølge og timing.
- Klik OK for at starte afspilningen.
- Overvåg afspilningens fremskridt i statusvinduet.
Afspilningskonfigurationsindstillinger styrer, hvordan SQL Server Profiler gengiver den optagede arbejdsbelastning. Afspil begivenheder i den rækkefølge, de blev optaget, for at bevare tidsmæssige relationer. Konfigurer, om den oprindelige timing skal bevares, eller om begivenheder skal afspilles så hurtigt som muligt.
8.2.3 Brugsscenarier for sporafspilning
Belastningstestning drager fordel af sporgengivelse ved at reproducere realistiske arbejdsbelastninger. Indfang produktionsarbejdsbelastningsspor og afspil dem mod testsystemer for at validere ydeevnen under reelle brugsmønstre. Juster samtidighedsindstillinger for at simulere forskellige belastningsniveauer.
Validering af miljømigrering sikrer, at nye systemer kan håndtere eksisterende arbejdsbyrder. Indfang spor fra nuværende produktionssystemer, og afspil dem på ny hardware eller opdateret hardware. SQL Server versioner. Sammenlign ydeevnemålinger for at bekræfte, at migreringer ikke forringer ydeevnen.
Testscenarier inkluderer regressionstest efter kodeændringer, validering af optimeringsændringer på tværs af SQL Server versioner og stresstest af hardwarekonfigurationer. Replay leverer ensartede, gentagelige arbejdsbelastninger til pålidelig testning.
8.3 Integration af SQL Profiler med Database Engine Tuning Advisor
Opret arbejdsbelastningsfiler til Database Engine Tuning Advisor ved at registrere spor med passende hændelser. Brug Tuning-skabelonen til at sikre, at alle nødvendige oplysninger registreres til analyse.
Start Database Engine Tuning Advisor, og vælg din sporingsfil som arbejdsbelastningskilde. Rådgiveren analyserer registrerede forespørgsler og anbefaler indekser, indekserede visninger eller partitioneringsstrategier, der kan forbedre ydeevnen.
Arbejdsgangen til ydeevneoptimering integrerer sporregistrering med tuninganalyse. Registrer repræsentative arbejdsbelastninger under normal drift, analyser med Tuning Advisor, gennemgå anbefalinger, test foreslåede ændringer i udviklingen, og implementer endelig godkendte ændringer i produktionen.
8.4 Automatisering af sporindsamling
Planlæg spor ved hjælp af SQL Server Agentjob til automatisk indsamling af data. Opret T-SQL-scripts, der definerer serversidespor ved hjælp af sp_trace-procedurer. Planlæg disse scripts til at køre på bestemte tidspunkter eller i bestemte intervaller.
PowerShell-automatisering muliggør sofistikerede scenarier for sporstyring. Skriv PowerShell-scripts, der opretter spor, overvåger deres status og behandler indsamlede data. Planlæg PowerShell-scripts via Opgaveplanlægger eller SQL Server Agent.
SQL Server Agentjob giver pålidelig planlagt udførelse. Opret job, dertart-spor i begyndelsen af overvågningsperioder og stop spor, når dataindsamlingen er færdig. Konfigurer jobnotifikationer for at advare administratorer om fejl.
8.5 Programmatisk analyse af spor
Læs sporingsfiler med T-SQL ved hjælp af funktionen fn_trace_gettable. Denne tabelværdifunktion analyserer sporingsfiler og returnerer hændelsesdata som et resultatsæt. Forespørg disse data ved hjælp af standard T-SQL for at udføre brugerdefineret analyse.
Brugerdefinerede analysescripts muliggør automatiseret sporingsbehandling. Skriv forespørgsler, der beregner aggregeret statistik, identificerer mønstre eller markerer anomalier. Planlæg disse scripts til at køre automatisk, når sporingsindsamlingen er fuldført.
Generer rapporter ved at forespørge på sporingsdata gemt i tabeller. Opret visninger, der aggregerer hændelser efter tidsperiode, bruger eller applikation. Byg rapporteringsløsninger, der giver regelmæssig indsigt i databaseaktivitet og -ydeevne.
9. SQL Server Bedste praksis for profilering
9.1 Bedste praksis for ydeevne
9.1.1 Minimering af sporingsoverhead
Vælg kun nødvendige hændelser for at reducere sporingsomkostninger. Hver yderligere hændelsestype øger mængden af data, som sporingsmotoren skal behandle. Gennemgå dine overvågningsmål, og inkluder kun hændelser, der er direkte relevante for disse mål.
Brug filtre effektivt for at undgå at indsamle irrelevante data. Filtrer efter Databasenavn for at ekskludere systemdatabaser. Filtrer efter Varighed for kun at indsamle langsomme forespørgsler. Filtrer efter Programnavn for at fokusere på specifikke applikationer. Korrekt filtrering reducerer sporingsoverhead dramatisk.
Serverside- versus klientside-overvejelser påvirker ydeevnen. Serverside-sporinger skriver data direkte til disk med minimal overhead. Klientside-sporinger overfører hændelser over netværket til Profiler-grænsefladen, hvilket øger latenstid og båndbreddeforbrug. Brug serverside-sporinger til produktionsovervågning.
9.1.2 Optimering af sporlagring
Administration af filstørrelse forhindrer udtømning af diskplads. Indstil maksimale filstørrelsesgrænser, der passer til den tilgængelige lagerplads. Aktiver filoverførsel for at oprette flere filer i stedet for at udvide en enkelt fil på ubestemt tid. Overvåg diskplads under sporingskørsel.
Tabel- versus fillagring indebærer forskellige ydeevneafvejninger. Fillagring giver bedre ydeevne under sporingsudførelse, fordi den omgår lagringsprogrammet. Tabellagring muliggør T-SQL-forespørgsler mod sporingsdata, men tilføjer skriveoverhead. Vælg lagringstype baseret på dine analysekrav.
9.2 Bedste praksis for sikkerhed
Tilladelsesstyring styrer, hvem der kan oprette og køre spor. Giv kun ALTER TRACE-tilladelse til betroede brugere, der har brug for sporingsfunktioner. Medlemmer af sysadministrator-rollen har ubegrænset sporingsadgang. Gennemgå og revider sporingstilladelser regelmæssigt.
Beskyttelse af følsomme data kræver omhyggelig sporkonfiguration. Undgå at registrere fuld forespørgselstekst, når du arbejder med følsomme data. Overvej at filtrere eller kryptere sporoutput, der indeholder fortrolige oplysninger. Gem sporfiler på sikre steder med passende adgangskontroller.
Sporingsfilers sikkerhed forhindrer uautoriseret adgang til registrerede data. Indstil filtilladelser for at begrænse adgangen til sporingsfiler. Krypter sporingsfiler, hvis de indeholder følsomme oplysninger. Slet sporingsfiler, når analysen er færdig, for at minimere eksponeringsrisikoen.
9.3 Overvejelser vedrørende produktionsmiljøet
9.3.1 Hvornår skal Profiler bruges i produktion
Risikovurdering afgør, hvornår SQL Server Profiler er egnet til produktionsbrug. Profiler introducerer målbart overhead, der stiger med sporingsområdet. Evaluer, om diagnosenostic-værdien retfærdiggør ydeevnepåvirkningen, før produktionsspor køres.
Minimal påvirkning af konfigurationer muliggør mere sikker produktionssporing. Brug meget selektive filtre til kun at registrere kritiske hændelser. Indstil varighedstærskler for at ignorere hurtigteksekverende forespørgsler. Begræns sporingsvarigheden til korte perioder under fejlfindingssessioner. Konfigurer serversidesporinger for at reducere klientoverhead.
9.3.2 Alternativer til produktionsovervågning
Udvidede begivenheder giver lavere overhead til produktionsovervågning. Denne moderne teknologi tilbyder bedre ydeevne og fleksibilitet end SQL Server Profiler. Migrer overvågningsløsninger til Extended Events til langvarig brug i produktionen.
Query Store indsamler automatisk data om forespørgselsydelse uden manuel sporkonfiguration. Aktiver Query Store på produktionsdatabaser for at spore statistikker for forespørgselsudførelse over tid. Query Store leverer most ydeevneovervågningsfunktioner uden overhead til sporing.
Dynamiske administrationsvisninger tilbyder let overvågning af specifikke scenarier. DMV'er leverer oplysninger om aktuel tilstand uden at registrere historiske hændelser. Forespørg DMV'er regelmæssigt for at overvåge serverens tilstand uden overhead ved kontinuerlig sporing.
9.4 Bedste praksis for sporstyring
Navngivningskonventioner sikrer, at sporfiler kan identificeres og organiseres. Inkluder dato, klokkeslæt, servernavn og formål i sporfilernes navne. Brug ensartede navngivningsmønstre på tværs af alle spor for at lette administration og analyse.
Dokumentationen registrerer sporkonfiguration og formål. Dokumenter hvilke hændelser du registrerede, hvorfor du oprettede sporet, og hvad du lærte af analysen. Vedligehold en log over spor, der køres mod produktionssystemer med henblik på overholdelse af regler og fejlfinding.
Opbevaringspolitikker forhindrer overdreven ophobning af sporfiler. Definer, hvor længe sporfiler skal opbevares, baseret på forretningskrav og lagerkapacitet. Automatiser sletning af gamle sporfiler for at frigøre diskplads. Arkiver vigtige spor til langtidslagring før sletning.
9.5 almindelige fejl at undgå
Overdreven sporing forårsager for høj ydeevnebelastning og genererer uhåndterlige datamængder. Undgå at registrere alle hændelser uden filtre.tarmed smalle, fokuserede spor og udvid kun omfanget, når det er nødvendigt. Mere data er ikke altid bedre for effektiv fejlfinding.
At glemme at stoppe spor spilder ressourcer og fylder diskplads. Stop altid spor, når overvågningen er færdig. Indstil grænser for sporvarighed eller maksimale filstørrelser for at forhindre spor, der løber væk. Overvåg kørende spor regelmæssigt, og stop inaktive eller unødvendige spor.
Ignorering af filteroptimering fører til dårlig ydeevne og vanskelig analyse. Invester tid i at konfigurere effektive filtre, før dutarspor. Test filtre i udviklingsmiljøer for at verificere, at de indfanger forventede data. Gennemgå og finjuster filtre baseret på indfangede resultater.
10. Alternativer til SQL Server Profiler i 2025
10.1 Udvidede begivenheder: Den moderne erstatning
10.1.1 Hvad er udvidede begivenheder
Udvidede begivenheder repræsenterer SQL Servers moderne arkitektur for eventhåndtering. Microsoft har designet dette system specifikt til at håndtere SQL Server Profilers begrænsninger, herunder ydeevneoverhead og konfigurationsfleksibilitet. Extended Events leverer omfattende overvågningsfunktioner med betydeligt lavere ressourceforbrug.
Arkitektur og fordele adskiller Extended Events fra ældre sporingsteknologier. Eventmotoren er dybt integreret i SQL Servers kernearkitektur, der registrerer hændelser med minimal overhead. Asynkron hændelsesbuffering forhindrer overvågning i at blokere databaseoperationer. Fleksibel tarGetting-muligheder muliggør forskellige outputkonfigurationer.
Ydelsesfordele gør Extended Events ideel til produktionsovervågning. Benchmarks viser, at Extended Events introducerer 50-90 % mindre overhead end tilsvarende. SQL Server Profiler-spor. Arkitekturen skalerer bedre med store hændelsesvolumener og understøtter flere samtidige overvågningssessioner.
10.1.2 Migrering fra Profiler til Udvidede Hændelser
Hændelseskortlægning oversættes SQL Server Profiler-hændelser til tilsvarende udvidede hændelser. Most Profiler-hændelser har tilsvarende Extended Events-modstykker. Microsoft leverer dokumentation, der kortlægger fælles hændelser mellem de to systemer.
Oprettelse af sessioner i Extended Events kræver indlæring af ny syntaks og nye koncepter. Definer eventsessioner ved hjælp af T-SQL CREATE EVENT SESSION-sætninger eller den grafiske brugerflade Extended Events i Management Studio. Sessioner angiver, hvilke events der skal registreres, hvilke data der skal indsamles, og hvor resultaterne skal gemmes.
10.1.3 Udvidede værktøjer og grænseflader til begivenheder
SSMS Extended Events-brugergrænsefladen giver grafisk sessionsstyring. Få adgang til Extended Events via mappen Administration i Object Explorer. Opret, rediger og overvåg hændelsessessioner via brugergrænsefladen. Se registrerede data i grafiske formater, herunder gitre og diagrammer.
T-SQL-sessionsstyring muliggør programmatisk kontrol af udvidede begivenheder. Skriv CREATE EVENT SESSION-sætninger for at definere sessioner i kode. Brug ALTER EVENT SESSION til at ændre kørende sessioner. Drop sessioner med DROP EVENT SESSION. Denne tilgang muliggør automatiserede overvågningsløsninger.
10.2 SQL Server Forespørgselsbutik
Query Store indsamler automatisk data om forespørgselsydelse for databaser, hvor det er aktiveret. Denne funktion sporer forespørgselsplaner, udførelsesstatistikker og ydelsesmålinger over tid uden manuel sporingskonfiguration. Query Store vedligeholder historiske data, hvilket muliggør trendanalyse og regressionsdetektion.
Overvågning af forespørgselsydelse i realtid via Query Store afslører den aktuelle systemadfærd. Se nyligt udførte forespørgsler, deres udførelsesplaner og ressourceforbrug. Identificer forespørgsler med stigende varighed eller skiftende udførelsesplaner, der kan indikere problemer.
Historisk forespørgselsanalyse muliggør sammenligning på tværs af tidsperioder. Query Store gemmer ydeevnedata i konfigurerbare opbevaringsperioder. Sammenlign den nuværende ydeevne med historiske baselines for at identificere regressioner. Analysér ydeevnetendenser for at forudsige fremtidige kapacitetsbehov.
Brug Query Store, når du har brug for automatisk, altid aktiv ydeevneovervågning. Aktiver Query Store på produktionsdatabaser for løbende at spore forespørgselsadfærd. Query Store supplerer sporingsbaseret fejlfinding ved at give historisk kontekst for ydeevneproblemer.
10.3 Dynamiske styringsvisninger (DMV'er)
Letvægtsovervågning via DMV'er giver information om aktuel tilstand uden at registrere historiske begivenheder. DMV'er eksponerer interne SQL Server Statistik og metadata gennem forespørgbare visninger. Forespørg DMV'er ved hjælp af standard T-SQL SELECT-sætninger.
Almindelige DMV-forespørgsler til ydeevneovervågning inkluderer sys.dm_exec_query_stats til forespørgselsydeevnestatistik, sys.dm_exec_requests til aktuelt udførende anmodninger og sys.dm_os_wait_stats til ventestatistik. Disse visninger giver indsigt i serverens tilstand og aktivitet på et givet tidspunkt.
DMV'er supplerer sporingsbaseret overvågning ved at levere realtidsmålinger. Brug DMV'er til hurtige sundhedstjek og analyse af den aktuelle tilstand. Kombiner DMV-forespørgsler med sporingsdata for omfattende fejlfindingsmetoder.
10.4 Overvågningsværktøjer fra tredjepart
Kommercielle alternativer tilbyder forbedrede overvågningsfunktioner ud over SQL Servers indbyggede værktøjer. Produkter fra leverandører som SolarWinds, Redgate og Quest tilbyder omfattende overvågnings-, alarmerings- og analysefunktioner. Disse værktøjer kombinerer ofte flere datakilder, herunder spor, DMV'er og performancetællere.
Funktionssammenligning afslører styrkerne ved forskellige overvågningsmetoder. Tredjepartsværktøjer leverer overlegne brugergrænseflader, automatiserede advarsler og historiske tendenser. SQL Server's indbyggede værktøjer tilbyder nul ekstra cost og dybere integration. Evaluer værktøjer baseret på dine specifikke krav og budget.
10.5 Valg af det rigtige værktøj til dine behov
En beslutningsmatrix hjælper med at vælge passende overvågningsværktøjer. Til ad hoc-fejlfinding, SQL Server Profiler forbliver tilgængelig og effektiv. Til produktionsovervågning giver Extended Events eller Query Store bedre ydeevne. Til omfattende virksomhedsovervågning tilbyder tredjepartsløsninger most funktioner.
Kriterier for valg af værktøj omfatter ydelsesomkostninger, brugervenlighed, krav til dataopbevaring og budgetbegrænsninger. Overvej dit teams ekspertise, når du vælger værktøjer. Kendte værktøjer muliggør hurtigere fejlfinding, selvom nyere alternativer tilbyder bedre funktioner.
Kombinér flere værktøjer for at opnå omfattende overvågningsstrategier. Brug Query Store til kontinuerlig præstationssporing, Extended Events til undersøgelse af specifikke problemer og DMV'er til sundhedstjek i realtid. Denne lagdelte tilgang giver robust overvågning uden overdreven overhead.
11. Fejlfinding SQL Server Profiler-problemer
11.1 Almindelige forbindelsesproblemer
Godkendelsesfejl forhindrer SQL Server Profiler fra at oprette forbindelse til tarHent servere. Bekræft, at du bruger korrekte legitimationsoplysninger til den valgte godkendelsesmetode. Windows-godkendelse kræver, at din Windows-konto har de relevante SQL Server tilladelser. SQL Server Godkendelse kræver gyldige SQL-loginoplysninger.
Problemer med netværksforbindelsen viser sig som timeout-fejl eller forbindelsesfejl. Bekræft SQL Server tillader fjernforbindelser i sin konfiguration. Kontroller, at firewallindstillinger tillader trafik på SQL Server's port. Test grundlæggende forbindelse ved hjælp af ping og telnet, før du fejlfinder Profiler-specifikke problemer.
11.2 Ydelsesproblemer med Profiler
Langsom sporingsudførelse indikerer for høj overhead fra sporkonfigurationen. Gennemgå valgte hændelser, og fjern unødvendige. Tilføj filtre for at reducere mængden af registrerede hændelser. Overvej at bruge spor på serversiden for at reducere behandlingsbelastningen på klientsiden.
Højt ressourceforbrug påvirker begge SQL Server og Profiler-klienten. Overvåg serverens CPU og hukommelse under sporingskørsel. Hvis serverressourcerne er begrænsede, skal filterselektiviteten øges eller opsamlingsvarigheden reduceres. Problemer med klientressourcer kræver lukning af andre programmer eller opgradering af klienthardware.
11.3 Problemer med sporingsfiler og -tabeller
Beskadigede sporingsfiler forhindrer åbning i SQL Server Profiler. Korruption skyldes typisk ukorrekt sporingsafslutning eller diskfejl. Prøv at åbne filen i en teksteditor for at bekræfte, at den ikke er fuldstændig beskadiget. Nogle gange kan delvise data gendannes ved at importere til en tabel ved hjælp af fn_trace_gettable.
Der opstår problemer med tabeladgang, når man forsøger at indlæse spor fra SQL Server tabeller. Bekræft, at du har SELECT-tilladelse på sporingstabellen. Kontroller, at tabellen ikke er blevet slettet eller omdøbt. Sørg for, at du opretter forbindelse til den korrekte server og database, der indeholder sporingstabellen.
11.4 Manglende hændelser eller ufuldstændige data
Filterfejlkonfiguration forårsager, at spor ikke viser forventede hændelser. Gennemgå filterkriterierne omhyggeligt for at sikre, at de ikke udelukker ønskede hændelser. Test filtre ved at køre korte spor og verificere, at de registrerede data stemmer overens med forventningerne. Fjern filtrenes tempo.rarfor at afgøre, om de forårsager problemet.
Bufferoverløb opstår, når SQL Server Kan ikke skrive sporingsdata hurtigt nok til at følge med hændelsesgenereringen. Dette sker typisk med ufiltrerede spor under høj aktivitet. Symptomerne omfatter manglende hændelser eller advarsler om, at "Hændelserne blev ikke registreret". Løs problemet ved at tilføje filtre for at reducere hændelsesvolumen eller øge diskens I/O-ydeevne for sporingsfilplacering.
11.5 Profiler-nedbrud og -fejl
Almindelige fejlmeddelelser inkluderer "Kan ikke oprette spor", der indikerer tilladelsesproblemer eller ressourcebegrænsninger. Meddelelserne "Sporing blev stoppet" antyder sporingsfejl på serversiden, muligvis på grund af en fuld disk. Fejlmeddelelserne "Ugyldig sporingsdefinition" indikerer konfigurationsproblemer.
Løsningsstrategier afhænger af den specifikke fejl. Tilladelsesfejl kræver, at brugeren får ALTER TRACE-tilladelse. Ressourcefejl kræver frigjort diskplads eller hukommelse. Konfigurationsfejl kræver gennemgang og korrektion af sporingsindstillinger.tart SQL Server Profiler, hvis den ikke reagerer.
12. Praktisk SQL Server Profiler-scenarier og eksempler
12.1 Scenarie 1: Identifikation af de langsomste forespørgsler i din database
Denne gennemgang demonstrerer indsamling og analyse af langsomme forespørgsler.
Konfigurer sporingen ved at følge disse trin:
- Launch SQL Server Profiler og opret forbindelse til din tarfå serveren.
- Klik File (Felt) -> Nyt spor.
- Indtast "Langsom forespørgselsanalyse" i Spornavn felt.
- Type TSQL fra Brug skabelonen dropdown.
- Klik Udvalg af begivenheder fane.
- Klik Kolonnefiltre.
- Type Varighed og indtast 1000000 i Større end eller lig.
- Type Databasenavn og indtast dit databasenavn i lignende.
- Klik OK at lukke filtre.
- Aktiver Gem til fil og angiv en filsti.
- Klik Kør til start indfangning.
Kør sporingen i spidsbelastningstiden i mindst 30 minutter for at registrere en repræsentativ arbejdsbyrde. Stop sporingen efter tilstrækkelig dataindsamling.
Analysér resultaterne efter denne proces:
- Klik på knappen Varighed kolonneoverskrift for at sortere efter udførelsestid.
- Identificér de 10 længst kørende forespørgsler.
- For hver forespørgsel skal du undersøge TekstData kolonne.
- Kopier forespørgselsteksten og indsæt den i Management Studio.
- Brug Vis estimeret udførelsesplan at analysere forespørgslen.
- Se efter tabelscanninger, manglende indeks eller ineffektive joinforbindelser.
- Anmeldelse CPU, Læserog skriver kolonner for ressourceforbrugsmønstre.
12.2 Scenarie 2: Fejlfinding af et fastlåst problem
Dette eksempel viser, hvordan man registrerer og analyserer fastlåste situationer.
Konfigurer overvågning af fastlåste situationer ved hjælp af disse trin:
- Opret et nyt spor med navnet "Undersøgelse af dødvande".
- Klik Udvalg af begivenheder fane.
- Klik Vis alle begivenheder.
- Udvid Låse kategori.
- Type Lås: Fastlåst.
- Type Lås: Deadlock-kæde.
- Udvid Fejl og advarsler kategori.
- Type Rapport om blokeret proces.
- Sørg TekstData kolonnen er valgt.
- Klik Kør til start-overvågning.
Når der opstår en dødlås under sporingsudførelsen, vises hændelsen Lock:Deadlock i sporingsgitteret.
Fortolk oplysninger om fastlåst situation ved at følge disse trin:
- Klik på knappen Lås: Fastlåst begivenhedsrække.
- Se TekstData kolonnen i det nederste panel.
- Kopier XML-indholdet fra TextData.
- Åbn Management Studio, og opret et nyt forespørgselsvindue.
- Indsæt XML-filen i forespørgselsvinduet.
- Gem filen med filtypen .xdl.
- Åbn .xdl-filen i Management Studio for at se grafen over fastlåste situationer.
- Grafen viser involverede processer, låste ressourcer og det valgte offer.
- Gennemgå forespørgslerne fra begge processer for at forstå konflikten.
Løsningstrin involverer typisk omarrangering af operationer i applikationskode for at få adgang til ressourcer i ensartet rækkefølge, reduktion af transaktionsomfang eller implementering af passende låsetips.
12.3 Scenarie 3: Sporing af alle forespørgsler fra en specifik applikation
Dette scenarie demonstrerer applikationsspecifik forespørgselsovervågning.
Konfigurer applikationsspecifik sporing ved hjælp af disse trin:
- Opret et nyt spor med navnet "Sporing af programforespørgsler".
- Vælg Standard skabelon.
- Klik Udvalg af begivenheder fane.
- Klik Kolonnefiltre.
- Type Applikationsnavn.
- Indtast dit applikationsnavn i lignende felt.
- Hvis din applikation bruger forbindelsespuljer, skal du muligvis bruge jokertegn-matchning.
- Klik OK for at anvende filteret.
- Aktiver Gem i tabellen for nemmere forespørgsel.
- Klik Kør til start indfangning.
Analyse af forespørgselsmønstre afslører, hvordan din applikation interagerer med SQL Server:
- Stop sporingen efter dataindsamling.
- Åbn Management Studio, og opret forbindelse til serveren med sporingstabellen.
- Forespørg sporingstabellen for at analysere mønstre.
- Tæl forespørgsler efter type for at se operationsmikset.
- Identificer most ofte udførte forespørgsler.
- Søg efter forespørgsler, der kan caches eller optimeres.
- Kontrollér for gentagne identiske forespørgsler, der indikerer manglende forbindelsespuljer.
12.4 Scenarie 4: Revision af dataadgang med henblik på overholdelse af regler
Dette eksempel viser oprettelse af sikkerhedsrevisionsspor.
Konfigurer sikkerhedsrevision ved at følge disse trin:
- Opret et nyt spor med navnet "Sikkerhedsrevisionsspor".
- Klik Udvalg af begivenheder fane.
- Klik Vis alle begivenheder.
- Udvid Security Audit kategori.
- Type Revisionslogin, Revisionslog ud, Revisionslogin mislykkedes.
- Type Adgang til revisionsdatabaseobjekter.
- Udvid TSQL kategori.
- Type SQL:Batchfuldført.
- Klik Kolonnefiltre.
- Filtrer efter ObjectName at overvåge specifikke følsomme tabeller.
- Aktiver Gem i tabellen til langsigtet opbevaring.
- Aktiver serversidesporing for uovervåget drift.
- Klik Kør til start-revision.
Generer revisionsrapporter ved at forespørge sporingstabellen:
- Opret forespørgsler, der opsummerer adgang efter bruger og tidsperiode.
- Identificer usædvanlige adgangsmønstre eller aktivitet efter lukketid.
- Dokument mislykkede loginforsøg til sikkerhedsgennemgang.
- Eksporter revisionsdata til rapporteringssystemer med henblik på compliance-dokumentation.
- Arkivér fuldførte revisionsspor i henhold til opbevaringspolitikker.
12.5 Scenarie 5: Registrering af en arbejdsbyrde til ydeevnetestning
Dette scenarie demonstrerer registrering af arbejdsbelastning til testformål.
Opret spor, der er klar til afspilning, ved hjælp af disse trin:
- Opret et nyt spor med navnet "Arbejdsbelastningsregistrering".
- Type TSQL_genafspilning fra skabelon-rullemenuen.
- Denne skabelon indeholder alle nødvendige begivenheder og kolonner til afspilning.
- Klik Udvalg af begivenheder fane.
- Anvend filtre, hvis du vil registrere specifikke arbejdsbelastningssegmenter.
- Aktiver Gem til fil.
- Angiv en filsti med tilstrækkelig diskplads.
- Indstil passende grænser for filstørrelser og aktiver rollover.
- Klik Kør til start indfangning.
Registrering under repræsentativ forretningsdrift. For omfattende registrering af arbejdsbyrden skal sporingen køres i flere timer og dække forskellige aktivitetsmønstre. Stop sporingen efter indsamling af tilstrækkelige data.
Arbejdsbelastningsanalyse afslører systemadfærdsmønstre:
- Åbn den optagede sporingsfil i SQL Server Profiler.
- Gennemgå begivenhedsfordelingen efter type og tidspunkt.
- Beregn aggregerede ressourceforbrugsmålinger.
- Identificer perioder med spidsbelastning og flaskehalse i ressourcerne.
- Brug sporet til analyse af Database Engine Tuning Advisor.
- Afspil sporingen mod testsystemer for at validere ændringerne.
13. Detektion af databasekorruption med SQL Server Profiler
13.1 Brug SQL Server Profiler for tidlige advarselstegn på korruption
Databasekorruption repræsenterer en af most alvorlige trusler mod dataintegritet og systempålidelighed. SQL Server Profiler er ikke et dedikeret værktøj til at opdage korruption, men det kan registrere kritiske advarselstegn, der indikerer potentielle korruptionsproblemer, der kræver øjeblikkelig undersøgelse.
13.2 Kritiske fejlhændelser, der indikerer potentiel korruption
- Fejl med alvorlighedsgrad 24 (823, 824, 825): Hardware- og mediefejl.
- Fejl 605: Mislykkede forsøg på sidehentning
- Fejl 8928 og 8929: Objektbeskadigelse
13.3 Mistænkelig databaseadfærd og advarselsmønstre
- Gentagne forespørgselstimeouts på bestemte objekter
- Adgangsbrud og programnedbrud
- Usædvanlig fejlklyngedannelse
13.4 Kør DBCC CHECKDB baseret på Profiler-resultater
If SQL Server Profiler finder mistænkelige fejl, du kan bruge DBCC CHECKDB til at udføre en komplet kontrol af databasen. Udfør derefter en reparation, hvis fejlene bekræftes. Vi har skrevet en omfattende guide til, hvordan man udfører disse opgaver.
Hvis DBCC CHECKDB ikke kan reparere databasen, er der tale om alvorlige fejl. I så fald kan du ty til et tredjeparts SQL-gendannelsesværktøj.
14. Ofte stillede spørgsmål
Q: Er SQL Server Profiler understøttes stadig i SQL Server 2022?
A: Ja, SQL Server Profiler er stadig inkluderet i SQL Server 2022 og SQL Server Management Studio, på trods af at være blevet udfaset siden SQL Server 2016. Microsoft fortsætter med at levere værktøjet med aktuelle versioner, men anbefaler at migrere til Extended Events for nye overvågningsimplementeringer. Værktøjet forbliver funktionelt og bruges i vid udstrækning til fejlfinding og ad hoc-analyse.
Q: Hvad er forskellen mellem SQL Server Profiler og SQL-sporing?
A: SQL Server Profiler er det grafiske brugergrænsefladeværktøj, der opretter forbindelse til SQL Trace-motoren, der kører indeni SQL ServerSQL Trace er den underliggende teknologi, der rent faktisk registrerer hændelser. Du kan oprette spor ved hjælp af Profilers brugerflade eller direkte via T-SQL-lagrede procedurer som sp_trace_create. Profiler giver nemmere konfiguration, mens T-SQL-spor tilbyder flere automatiseringsmuligheder.
Q: Hvor meget performance overhead betyder SQL Server Tilføjelse af profil?
A: Ydelsespåvirkningen varierer afhængigt af sporkonfigurationen. En velfiltreret sporing, der kun registrerer specifikke hændelser, kan tilføje 1-5% overhead. Dårligt konfigurerede sporing uden filtre kan tilføje 20-50% eller mere overhead, især på travle systemer. Sporing på serversiden har lavere påvirkning end sporing på klientsiden. Brug altid filtre til at minimere hændelsesvolumen og test først sporing i ikke-produktionsmiljøer.
Q: Må jeg løbe SQL Server Profiler på produktionsservere?
A: Du kan løbe SQL Server Profiler på produktionsservere, men vær forsigtig. Brug meget selektive filtre, begræns sporvarigheden, og foretræk serversidespor for at minimere påvirkningen. Kør produktionsspor i perioder med lav aktivitet, når det er muligt. Overvej i stedet Extended Events eller Query Store for kontinuerlig produktionsovervågning, da de tilbyder lavere overhead.
Q: Hvilke tilladelser skal jeg bruge SQL Server Profiler?
A: Du skal have ALTER TRACE-tilladelse for at oprette og køre spor. Medlemmer af den faste sysadmin-serverrolle har automatisk denne tilladelse. Brugere, der ikke er sysadmin, skal eksplicit give ALTER TRACE-tilladelse. Derudover skal du have de nødvendige tilladelser for at gemme sporingsdata i filer eller tabeller baseret på din konfiguration.
Q: Hvorfor kan jeg ikke se alle hændelser i min sporing?
A: Manglende hændelser skyldes typisk for restriktive filtre eller bufferoverløb. Gennemgå din filterkonfiguration for at sikre, at den ikke udelukker ønskede hændelser. Bufferoverløb opstår, når SQL Server Kan ikke skrive hændelser hurtigt nok, normalt med ufiltrerede spor på travle systemer. Tilføj filtre for at reducere hændelsesvolumen eller øge diskens I/O-ydeevne. Kontroller for fejlmeddelelser, der angiver, at hændelser ikke blev registreret.
Q: Hvordan indsamler jeg oplysninger om fastlåste situationer med SQL Server Profiler?
A: Opret en sporing, der inkluderer Lock:Deadlock- og Lock:Deadlock Chain-hændelserne fra kategorien Låse. Sørg for, at kolonnen TextData er valgt, da den indeholder XML'en for deadlock-grafen. Når der opstår en deadlock, skal du kopiere XML'en fra kolonnen TextData, gemme den med filtypen .xdl og åbne den i SQL Server Management Studio for at se det grafiske dødvandediagram.
Q: Hvad er forskellen på at gemme spor i filer kontra tabeller?
A: Filer yder bedre under sporingskørsel, fordi de omgår SQL Server Lagringsmotor. Filsporinger skriver data direkte til disk med minimal overhead. Tabelsporinger skriver gennem lagermotoren, hvilket tilføjer overhead, men muliggør øjeblikkelige T-SQL-forespørgsler mod sporingsdata. Brug filer til ydeevnefølsomme scenarier og tabeller, når du har brug for at forespørge data umiddelbart under eller efter registrering.
Q: Kan jeg automatisere SQL Server Indsamling af Profiler-spor?
A: Ja, automatiser sporindsamling ved hjælp af serversidespor, der er oprettet med T-SQL-lagrede procedurer. Skriv scripts ved hjælp af sp_trace_create og relaterede procedurer, og planlæg dem derefter via SQL Server Agentjob. Denne tilgang muliggør uovervåget sporindsamling efter bestemte tidsplaner. PowerShell-scripts giver en anden automatiseringsmulighed til mere komplekse scenarier.
Q: Hvor længe skal jeg køre en sporing?
A: Sporingsvarigheden afhænger af dine mål. For at fejlfinde specifikke problemer skal du køre spor, mens du reproducerer problemet, typisk 5-30 minutter. For at analysere ydeevnen skal du registrere mindst én time i perioder med spidsbelastning. For at analysere arbejdsbyrden eller kapacitetsplanlægning skal du registrere flere timer på tværs af forskellige tidsperioder. Stop altid spor, når overvågningen er færdig, for at frigøre ressourcer.
Q: Hvad skal jeg gøre, hvis min sporingsfil bliver for stor?
A: Aktiver filoverførsel i sporingsegenskaber for at oprette flere mindre filer i stedet for én stor fil. Angiv en maksimal filstørrelse, der passer til din diskplads og dine analysebehov. Brug filtre til at reducere mængden af registrerede hændelser. For store spor bør du overveje at analysere data i segmenter i stedet for at indlæse hele sporet på én gang. Arkiver eller slet gamle sporingsfiler regelmæssigt for at administrere diskplads.
Q: Hvordan finder jeg de forespørgsler, der forårsager højt CPU-forbrug?
A: Opret en sporing med SQL:BatchCompleted- og RPC:Completed-hændelserne. Medtag kolonnerne CPU, Duration og TextData. Filtrer efter Duration for kun at registrere forespørgsler, der overstiger en tærskelværdi, f.eks. 1000 millisekunder. Efter indsamling af data skal du sortere efter CPU-kolonnen i faldende rækkefølge. Forespørgslerne øverst bruger most processortid. Undersøg disse forespørgsler for optimeringsmuligheder, såsom manglende indeks eller ineffektiv logik.
Q: Kan SQL Server Planer for udførelse af forespørgsler i Profiler-opsamling?
A: SQL Server Profiler kan indsamle oplysninger om udførelsesplaner via Showplan XML-hændelser i kategorien Performance. Vælg Showplan XML eller Showplan XML Statistics Profile-hændelser for at indsamle komplette udførelsesplaner. Kolonnen TextData indeholder XML-plandataene. Til rutinemæssig analyse af udførelsesplaner gælder dog SQL Server Management Studios grafiske udførelsesplanfunktioner eller Query Store giver nemmere alternativer.
Q: Hvad er den bedste skabelon til start med til generel overvågning?
A: Standardskabelonen giver en god starpunkt til generel overvågning. Det omfatter almindelige forespørgselsudførelseshændelser, kald af lagrede procedurer og fejlsporing med afbalanceret overhead. Brug TSQL-skabelonen til overvågning med lavere effekt og fokus på forespørgselsydelse. Tilpas skabeloner baseret på dine specifikke behov ved at tilføje filtre og justere hændelsesvalg, når du har forstået det grundlæggende.
Q: Hvordan sporer jeg kun en bestemt applikation eller bruger?
A: Brug kolonnefiltre til at isolere specifikke applikationer eller brugere. For applikationer skal du filtrere efter ApplicationName-kolonnen ved hjælp af det navn, der er angivet i din forbindelsesstreng. For brugere skal du filtrere efter LoginName-kolonnen med SQL Server login eller Windows-kontonavn. Kombinér flere filtre for at indsnævre fokus yderligere, f.eks. filtrering efter både Programnavn og Databasenavn for at overvåge et programs aktivitet i en bestemt database.
15. Konklusion og næste trin
15.1 vigtige ting
SQL Server Profiler er fortsat et værdifuldt værktøj til ad hoc-databasefejlfinding på trods af sin forældede status. Den enkle brugerflade og omfattende hændelsesregistrering gør den ideel til hurtig diagnosticering.ostic-sessioner, når du har brug for øjeblikkelige resultater. Brug Profiler til fejlfinding af specifikke problemer, analyse af programadfærd og sikkerhedsrevision.
Bedste fremgangsmåder omfatter aggressiv brug af filtre for at minimere påvirkning af ydeevnen, at foretrække serversidesporing i produktionsmiljøer og at begrænse sporingsvarigheden til nødvendige perioder. Vælg kun vigtige hændelser og kolonner for at reducere overhead. Gem spor i filer i stedet for tabeller for bedre ydeevne under registrering.
15.2 Fremadrettet: Omfavnelse af moderne værktøjer
Overgang fra SQL Server Profiler til Extended Events for langsigtede overvågningsløsninger. Selvom Profiler forbliver funktionel, positionerer det dig til fremtiden ved at investere tid i at lære Extended Events SQL Server versioner. Starmed simple udvidede begivenhedssessioner, der replikerer dine almindelige Profiler-spor.
Aktivér Query Store på produktionsdatabaser for at få automatisk ydeevneovervågning uden manuel sporkonfiguration. Query Store registrerer løbende forespørgselsplaner og udførelsesstatistik og leverer basisdata til ydeevneanalyse. Kombinér Query Store med tarfik udvidede begivenhedssessioner til omfattende overvågning.
15.3 Yderligere ressourcer
Følgende ressourcer vil hjælpe dig med at uddybe din SQL Server Profiler viden og hold dig opdateret med bedste praksis for overvågning:
Officiel Microsoft-dokumentation
- SQL Server Profiler-dokumentation – Omfattende reference til begivenheder, kolonner og procedurer
- SQL-sporingssystems lagrede procedurer – T-SQL-reference til oprettelse af spor på serversiden
- Udvidet dokumentation af begivenheder – Migrationsvejledning og moderne overvågningsmetoder
- Dokumentation af forespørgselslager – Reference til automatisk sporing af forespørgselsydelse
- Værktøjer til overvågning og finjustering af ydeevne – Oversigt over alle SQL Server overvågningsmuligheder
EU Ressourcer
- SQL Server Central – Artikler, fora og scripts til databaseprofessionelle
- Stack Overflow SQL Server Tag – Spørgsmål og svar fra fællesskabet om specifikke fejlfindingsspørgsmål
- Reddit r/SQLServer – Diskussionsforum for SQL Server emner og råd
- SQLServerCentral.com Forums – Aktive diskussioner i fællesskabet om profilering og ydeevne
- MSDN SQL Server Forummer – Microsoft-hosted-fællesskabets støttefora
Blogs og tekniske artikler
- SQL Server Performance Monitor – Dedikeret indhold til præstationsovervågning og optimering
- Brent Ozar Unlimited Blog – Bedste praksis for ydeevnejustering og -overvågning
- SQLSkills.com – Ekspertniveau SQL Server indhold fra brancheledere
- microsoft SQL Server Blog – Officielle produktopdateringer og funktionsmeddelelser
- Simpel snak – Praktisk SQL Server tutorials og casestudier
Uddannelse og certificering
- Microsoft Lær – Gratis online træningsmoduler til SQL Server
- Microsoft-certificeret: Azure Database Administrator Associate – Officiel certificeringssti
- Pluralsight SQL Server Kurser – Videotræning i profilering og performance tuning
- LinkedIn Learning SQL Server Uddannelse – Professionelle udviklingskurser
- Udemy SQL Server Performancekurser – Praktiske, praktiske træningsmuligheder
Bøger
- SQL Server Ydeevnejustering af forespørgsler – Omfattende guide til ydeevneoptimering
- om SQL Server Internt – Dyk ned i SQL Server arkitektur
- SQL Server Udførelsesplaner – Forståelse af forespørgselsoptimering
- Ekspertpræstationsindeksering for SQL Server – Indeksdesign og -optimering
- SQL Server Avanceret fejlfinding og ydeevnejustering – Avanceret diagnoseostic-teknikker
Værktøjer og hjælpeprogrammer
- SQL Server ledelsesstudie – Primær grænseflade til SQL Server Profiler
- Azure DataStudio – Moderne databaseværktøj på tværs af platforme
- sp_WhoIsActive – Populær, gemt procedure til overvågning oprettet af fællesskabet
- SQL Sentry Plan Explorer – Gratis værktøj til analyse af udførelsesplaner
- DBForge Studio – Tredjepart SQL Server udviklings- og administrationsværktøj
Om forfatteren
Yuan Sheng er en senior databaseadministrator (DBA) med over 10 års erfaring inden for SQL Server miljøer og virksomhedsdatabaseadministration. Han har med succes løst hundredvis af databasegendannelsesscenarier på tværs af finansielle tjenester, sundhedsvæsenet og produktionsorganisationer.
Yuan har specialiseret sig i SQL Server databasegendannelse, løsninger med høj tilgængelighedog ydeevneoptimering. Hans omfattende praktiske erfaring omfatter administration af databaser på flere terabyte, implementering af Altid på tilgængelighedsgrupperog udvikling af automatiserede backup- og gendannelsesstrategier til missionskritiske forretningssystemer.
Gennem sin tekniske ekspertise og praktiske tilgang fokuserer Yuan på at skabe omfattende vejledninger, der hjælper databaseadministratorer og IT-professionelle med at løse komplekse SQL Server udfordringer effektivt. Han holder sig opdateret med det nyeste SQL Server udgivelser og Microsofts udviklende databaseteknologier, og tester regelmæssigt gendannelsesscenarier for at sikre, at hans anbefalinger afspejler bedste praksis i den virkelige verden.
Har spørgsmål vedr SQL Server gendannelse eller brug for yderligere vejledning i fejlfinding af databaser? Yuan er velkommen feedback og forslag for at forbedre disse tekniske ressourcer.























