Når du arbejder som SQL Server-databaseadministrator, bør du have evnerne til at dykke dybt ned i havet af SQL Server Engine og finde, hvad der sker internt, for at være i stand til at opdage, fejlfinde og løse ethvert problem, du måtte støde på.
Du kan drage fordel af de logfiler, der er skrevet af SQL Server-motoren lokalt i form af SQL Server-logfiler eller eksternt i form af hændelseslogfiler, men du kan ikke betragte dem som den eneste kilde til din fejlfinding og tuning operationer.
SQL Server giver dig en række indbyggede funktioner, der kan bruges til at indsamle de forskellige typer af SQL Server-hændelser. I denne artikel vil vi gennemgå disse indbyggede funktioner og overveje et af de mest effektive gratis tredjepartsværktøjer, der kan bruges til at indsamle og analysere SQL Server-hændelser.
SQL Profiler
SQL Server Profiler bruges i vid udstrækning af SQL Server-databaseadministratorer og -udviklere til at indsamle forskellige typer hændelser om de forespørgsler, der kører på den tilsluttede SQL Server-instans og derefter bruge disse oplysninger til at forbedre forespørgselsydeevnen.
SQL Profiler giver dig muligheden for at fange en lang række hændelser, angive de hændelsesegenskaber, du er interesseret i, og filtrere de opsamlede data baseret på tidligere specificerede egenskabsværdier. Du kan gå til dybden af, hvilken bruger der udfører hvilken type handling på hvilken databasetabel, fra hvilken maskine og præcist på hvilket tidspunkt. Derudover viser SQL Profiler antallet af forbrugte ressourcer og viser, om handlingen er fuldført eller mislykkedes med en fejl.
Begivenhedsindsamling via SQL Profiler udføres enten ved at bruge et antal eksisterende skabeloner eller ved at oprette din egen tilpassede skabelon ved hjælp af de eksisterende hændelser. Først skal du oprette forbindelse til den SQL Server-instans, hvorfra du planlægger at fange hændelserne, ved at angive navnet på SQL Server-instansen, godkendelsesmetoden og de legitimationsoplysninger, der kræves for at oprette forbindelse til den SQL Server-instans, som vist nedenfor:
Efter at have oprettet forbindelse til SQL Server-instansen, vil du blive bedt om at angive skabelonen for de hændelser, der skal indsamles, baseret på profileringsprocessens formål, som vist nedenfor:
Du kan se fra det forrige billede, at SQL Profiler giver dig mulighed for at gemme sporingsresultatet til en fil eller til en eksisterende databasetabel. Hvis ingen af de medfølgende skabeloner passer til dine krav, kan du nemt gå til Begivenhedsvalg tabulator og afkryds for at vise alle hændelser og kolonner og filtrer derefter de registrerede hændelser med de egenskaber, du er interesseret i. For eksempel kan du filtrere for at fange hændelser, der kommer fra en specifik database, en databasebruger, en databasetabel, værtsmaskine og så på, som følger:
Når du har valgt de begivenheder, du er interesseret i, skal du blot klikke på Kør knappen og begynde at modtage begivenheder fra den valgte database, som vist nedenfor:
Tag i betragtning, at hvis du ikke definerer et meget nøjagtigt filter til kun at indsamle de begivenheder, du er interesseret i, vil SQL Profiler indsamle et stort antal begivenheder, som vil være svære at læse og analysere. Derudover er det ikke anbefales at køre SQL Profiler-værktøjet på produktionsmiljøet, da det vil "æde" serverressourcerne og dræbe dens ydeevne. Hvis du har brug for at bruge det, så prøv at indsnævre omfanget af de begivenheder, der skal fanges, ved at bruge nøjagtige filtre.
Udvidede begivenheder
For at overvinde ydelsesforringelsesproblemet forårsaget af at bruge det forældede SQL Profiler-værktøj til at fange de forskellige typer SQL-hændelser, blev der introduceret en letvægts, meget skalerbar og konfigurerbar ydeevneovervågningsfunktion i SQL Server 2008, som kan bruges til at indsamle nyttige oplysninger fra den brede vifte af tilgængelige handlinger, med det mindst mulige SQL-ressourceforbrug, hvilket hjælper med fejlfinding og tuning af ydelsen af SQL Server-forespørgslerne. Denne hændelsesregistreringsfunktion kaldes SQL Server Udvidede hændelser .
Funktionen Udvidede begivenheder er tilgængelig via SQL Server Management Studio fra Udvidede begivenheder mulighed under Administration node. For at oprette en ny udvidet begivenhedssession skal du højreklikke på Sessioner mulighed under Udvidede begivenheder node og vælg Ny session som nedenfor:
Fra Ny session vindue, har du mulighed for at vælge fra en række tilgængelige skabeloner med flere foruddefinerede skabeloner end SQL Profiler skabeloner, eller blot at bruge Blank skabelon og udtrykkeligt specificere de begivenheder, du er interesseret i, som vist nedenfor:
Fra Begivenheder fanen, kan du filtrere de begivenheder, du er interesseret i, baseret på begivenhedskategorien, og derefter vælge hvilke egenskaber for hver begivenhed, du skal hente. Derudover kan du oprette et tilpasset filter for at indsnævre omfanget af de registrerede hændelser, som vist nedenfor:
Opbevaring siden giver dig forskellige muligheder for at gemme resultatet af en udvidet begivenhedssession. I dette eksempel beholder vi sporingsresultatet til en fil med udvidede hændelser med indstillingerne konfigureret nedenfor:
Når du har tilpasset den udvidede begivenhedssession, så den opfylder dine overvågningskrav, skal du klikke på OK knappen for at oprette sessionen. Efter sessionen er blevet oprettet, begynder den ikke automatisk at fange hændelserne, medmindre du konfigurerer det under sessionsoprettelsesprocessen. For at tillade, at sessionen begynder at fange begivenheder, skal du højreklikke på den oprettede session og vælge Start session mulighed, som vist nedenfor:
For at se den optagne session har du mulighed for at åbne den fysiske fil, der tidligere er konfigureret til at gemme begivenhederne, eller blot højreklikke på den oprettede session og vælge Se livedata mulighed, som vist nedenfor:
Et nyt vindue vil blive åbnet, der viser de indsamlede hændelser med egenskabsværdierne for hver hændelse, som nedenfor:
Selvom du nemt kan oprette udvidede begivenheder med et par klik, står du stadig over for nogle vanskeligheder, mens du prøver at vælge den rigtige begivenhed, der skal overvåges, på grund af kompleksiteten i begivenhedernes navnekonvention, der gør det svært at forstå formålet bag hver begivenhed. Derudover er den GUI, som sessionsinformationen vises i, stadig ikke brugervenlig, hvilket komplicerer at analysere begivenhederne og deres egenskaber. Fra dette tidspunkt stiger behovet for et mere brugervenligt tredjepartsværktøj, hvilket vi vil diskutere i næste afsnit af denne artikel.
dbForge Event Profiler
dbForge Event Profiler til SQL Server er en GRATIS værktøj, der giver dig mulighed for at fange og analysere SQL Server-hændelser og gemme hændelsesdata i en fysisk sporingsfil til senere undersøgelse.
dbForge Event Profiler til SQL Server overvinder problemet med SQL Profilers ydeevneforringelse ved at køre med den højest mulige ydeevne og minimal serverbelastning med fuld understøttelse af funktionen Extended Events.
Det, der gør dbForge Event Profiler til SQL Server attraktivt begivenhedsprofileringsværktøj i forhold til funktionen Udvidede begivenheder, er forespørgselssyntaksfremhævningen funktion, som ikke er tilgængelig i funktionen SQL Profiler eller Extended Events. Derudover giver det mulighed for at udføre filtrering og sortering operationer i nettet med sporingsresultater.
dbForge Event Profiler til SQL Server kan nemt bruges til at overvåge de forskellige typer aktiviteter fra SQL Server Database Engine, Analysis Services og Integration Services, fejlfinde T-SQL-forespørgsler og transaktionsydelsesrelaterede problemer og overvåge de forskellige SQL Server-fejl og advarsler.
Derudover kan dbForge Event Profiler til SQL Server bruges til at auditere de forskellige aktiviteter for SQL Server-databasebrugere eller udføre stress- eller kvalitetssikringstest. Du kan også blot oprette dine egne brugerdefinerede spor og gemme dem til fremtidig brug.
For at bruge dbForge Event Profiler til SQL Server til at fange SQL Server-hændelser, skal du downloade den fra dbForge Download-siden gratis og installere den på din SQL Server eller maskine ved hjælp af den enkle installationsguide som nedenfor :
Klik på INSTALLER for at starte installationsprocessen knappen fra Velkommen og angiv den placering, hvor du vil installere værktøjet, fra Vælg destination side nedenfor:
Når du har angivet installationsstedet, skal du klikke på Næste knap. I Genveje side, angiv, om du planlægger at oprette et genvejsikon til dbForge-værktøjet på dit skrivebord, og klik derefter på Næste for at fortsætte:
På Filforeninger side, vil du blive bedt om at angive filtypenavnet for de filer, der vil blive knyttet til dbForge-værktøjet. Vælg udvidelsen til de filer, du planlægger at åbne ved hjælp af dette værktøj, og klik derefter på Næste for at fortsætte:
På Opstartsoptimering side, gennemgå og vælge den bedste mulighed for værktøjets ydeevneudnyttelse, og klik derefter på Næste for at fortsætte:
Nu starter installationsprocessen, baseret på dine valg, med statuslinjen, der viser status for installationsprocessen, som vist nedenfor:
Når installationen af dbForge Event Profiler til SQL Server er blevet gennemført, giver guiden dig besked og giver dig mulighed for at starte værktøjet direkte efter lukning af installationsguiden, som nedenfor:
Velkomstsiden til dbForge Event Profiler til SQL Server er brugervenlig, og enhver, der er fortrolig med SSMS, kan nemt tilpasse sig den. For at starte en ny sporing skal du klikke på Ny mulighed i højre side af værktøjet, som nedenfor:
I Profilserverhændelser vindue, skal du angive forbindelsesoplysningerne, der vil blive brugt til at oprette forbindelse til den SQL Server-instans, der vil blive overvåget. Hvis det er den første kørsel for værktøjet, og der ikke er nogen tidligere gemt forbindelse, skal du klikke på Ny forbindelse knap som vist nedenfor:
I Forbindelseshåndtering vinduet, Ny knappen vil flytte dig til det kendte forbindelsesvindue, hvor du vil blive bedt om at angive SQL Server-forekomstens navn, godkendelsestilstanden og de legitimationsoplysninger, der kræves for at oprette forbindelse til SQL Server. Når du har angivet forbindelsesoplysningerne, skal du klikke på Test forbindelse knappen for at kontrollere, om de oplysninger, du har indtastet, er gyldige, som vist nedenfor:
Når du har angivet forbindelsesoplysningerne til SQL Server-instansen, skal du vælge, om du vil bruge en eksisterende skabelon, fra en liste over nyttige skabeloner, der tjener de fleste af sporingsfunktionerne, eller fravælge den for at angive listen over hændelser, du er interesseret i at fange i næste trin. Du kan også angive egenskaberne for destinationsfilen som følger:
På Begivenheder, der skal optages side, vil du finde en brugervenlig og velkategoriseret liste over begivenheder, der er beskrevet på en meningsfuld måde, uden at du behøver at dykke dybt og prøve at forstå dens betydning, som vist nedenfor:
Billedet nedenfor viser også alle tilgængelige begivenhedskategorier med antallet af begivenheder i hver kategori. Nu kan du nyde at forstå alle de tilgængelige begivenheder efter kategoriens navn, som vist tydeligt nedenfor:
Efter at have specificeret listen over begivenheder, du er interesseret i at fange, vises Handlinger side giver dig mulighed for at specificere listen over handlinger, som du vil fange i den aktuelle begivenhedssession, som vist nedenfor:
På Begivenhedsfiltre side, kan du også tegne dine egne filtre for at minimere antallet af indsamlede rækker for at matche dine krav og gøre det nemmere at analysere, som vist nedenfor:
Kolonnerne side giver dig mulighed for at angive, hvilke kolonner du planlægger at vise i den aktuelle begivenhedssession. Hentning af kun de kolonner, der indeholder de oplysninger, du er interesseret i at fange, vil bidrage væsentligt til at minimere størrelsen af sporingsfilen og bredden af de returnerede rækker, hvilket vil gøre det lettere at analysere de registrerede data, som vist nedenfor:
Når du har tilpasset din begivenhedssession, kan du begynde at fange begivenhederne ved at klikke på Udfør knappen fra det forrige billede. Efter start af begivenhedssessionen, begynder værktøjet at fange og vise begivenhederne direkte, som vist nedenfor:
Den store fordel her er, at et klik på en event vil vise en komplet beskrivelse af den med T-SQL-scriptet vist i en brugervenlig farvet skrifttype inde i en separat boks, hvilket gør det meget nemt at kontrollere og analysere, som vist nedenfor:
Derudover kan dbForge Event Profiler til SQL Server fungere som SSMS ved at give mulighed for at skrive en ny T-SQL-forespørgsel og udføre den på den tilsluttede SQL Server-instans, som vist nedenfor:
Værktøjet viser også de returnerede data i et nyttigt gitter, der viser hvert kolonnenavn, datatype og værdi, som følger:
De fleste af SQL Server-databaseadministratorerne stødte på en situation, da de forsøgte at udføre en stor SQL Server-fil ved hjælp af SSMS, der mislykkedes med OutOfMemory-fejl. dbForge Event Profiler til SQL Server overvinder dette problem ved at tilbyde en funktion til at udføre ethvert stort T-SQL-script i en SQL-fil. Det du skal gøre er kun at vælge Udfør stort script fra menuen Database, og vælg derefter placeringen for den scriptfil, den database, som denne fil vil blive udført på, og den kodning, der bruges i den fil, som vist tydeligt nedenfor:
Konklusion
Fra alle de foregående eksempler kan du se, hvordan dbForge Event Profiler til SQL Server GRATIS tredjepartsværktøj kan bruges til at fange og analysere de forskellige typer SQL Server-hændelser ved at overvinde alle ulemperne ved de almindelige hændelsesregistreringsværktøjer. Det er en GRATIS værktøj, og det er bestemt værd at bruge.