sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man fångar och analyserar SQL Server-händelser

När du arbetar som SQL Server-databasadministratör bör du ha kompetensen att dyka djupt ner i SQL Server Engines hav och hitta vad som händer internt, för att kunna upptäcka, felsöka och åtgärda alla problem du kan ställas inför.
Du kan dra fördelar av loggarna som skrivs av SQL Server-motorn lokalt i form av SQL Server-loggar eller externt i form av händelseloggar, men du kan inte betrakta dem som den enda källan för din felsökning och justering operationer.

SQL Server ger dig ett antal inbyggda funktioner som kan användas för att samla in olika typer av SQL Server-händelser. I den här artikeln kommer vi att gå igenom dessa inbyggda funktioner och överväga ett av de mest effektiva kostnadsfria tredjepartsverktygen som kan användas för att samla in och analysera SQL Server-händelser.

SQL Profiler

SQL Server Profiler används i stor utsträckning av SQL Server-databasadministratörer och utvecklare för att samla in olika typer av händelser om frågor som körs på den anslutna SQL Server-instansen och sedan använda denna information för att förbättra frågeprestanda.

SQL Profiler ger dig möjligheten att fånga ett stort antal händelser, specificera händelseegenskaperna som du är intresserad av och filtrera infångad data baserat på tidigare angivna egenskapsvärden. Du kan gå till djupet av vilken användare som utför vilken typ av åtgärd på vilken databastabell, från vilken maskin och exakt vid vilken tidpunkt. Dessutom visar SQL Profiler antalet förbrukade resurser och visar om åtgärden har slutförts eller misslyckats med ett fel.

Händelseinsamling via SQL Profiler utförs antingen genom att använda ett antal befintliga mallar eller genom att skapa din egen anpassade mall med de befintliga händelserna. Först måste du ansluta till den SQL Server-instans som du planerar att fånga händelserna från, genom att ange namnet på SQL Server-instansen, autentiseringsmetoden och de autentiseringsuppgifter som krävs för att ansluta till den SQL Server-instansen, som visas nedan:

Efter anslutning till SQL Server-instansen kommer du att bli ombedd att ange mallen för de händelser som ska samlas in, baserat på profileringsprocessens syfte, som visas nedan:

Du kan se från föregående bild att SQL Profiler ger dig möjlighet att spara spårningsresultatet till en fil eller i en befintlig databastabell. Om ingen av de medföljande mallarna passar dina krav kan du enkelt flytta till Händelseval tabb och bocka för att visa alla händelser och kolumner och filtrera sedan de fångade händelserna med de egenskaper du är intresserad av. Du kan till exempel filtrera för att fånga händelser som kommer från en specifik databas, en databasanvändare, en databastabell, värddator och så på, enligt följande:

När du har valt de evenemang som du är intresserad av klickar du bara på Kör knappen och börja ta emot händelser från den valda databasen, som visas nedan:

Tänk på att om du inte definierar ett mycket exakt filter för att bara samla in de händelser du är intresserad av, kommer SQL Profiler att samla in ett stort antal händelser som kommer att vara svåra att läsa och analysera. Dessutom är det inte rekommenderas att köra SQL Profiler-verktyget i produktionsmiljön eftersom det kommer att "äta upp" serverresurserna och döda dess prestanda. Om du verkligen behöver använda den, försök att begränsa omfattningen av händelserna som ska fångas med hjälp av exakta filter.

Utökade evenemang

För att lösa problemet med prestandaförsämring som orsakas av att använda det utfasade SQL Profiler-verktyget för att fånga olika typer av SQL-händelser, introducerades en lätt, mycket skalbar och konfigurerbar prestandaövervakningsfunktion i SQL Server 2008, som kan användas för att samla in användbar information från det stora utbudet av tillgängliga åtgärder, med minsta möjliga SQL-resursförbrukning, vilket hjälper till att felsöka och justera prestanda för SQL Server-frågor. Denna händelsefångstfunktion kallas SQL Server Utökade händelser .

Funktionen för utökade händelser är tillgänglig via SQL Server Management Studio, från Utökade händelser alternativet under Management nod. För att skapa en ny utökad händelsesession högerklickar du på Sessioner under Utökade evenemang nod och välj Ny session enligt nedan:

Från Ny session har du möjlighet att välja bland ett antal tillgängliga mallar, med mer fördefinierade mallar än SQL Profiler-mallarna, eller helt enkelt att använda tom mall och explicit specificera de händelser som du är intresserad av, som visas nedan:

Från Event fliken kan du filtrera de evenemang du är intresserad av baserat på evenemangskategorin och sedan välja vilka egenskaper för varje evenemang du behöver hämta. Dessutom kan du skapa ett anpassat filter för att begränsa omfattningen av de fångade händelserna, som visas nedan:

Lagring sidan ger dig olika alternativ för att spara resultatet av sessionen för utökade händelser. I det här exemplet kommer vi att behålla spårningsresultatet till en fil med utökade händelser med inställningarna konfigurerade nedan:

Efter att ha anpassat den utökade händelsesessionen för att uppfylla dina övervakningskrav klickar du på OK för att skapa sessionen. Efter att sessionen har skapats börjar den inte automatiskt fånga händelserna om du inte konfigurerar det under processen att skapa sessionen. För att låta sessionen börja fånga händelser, högerklicka på den skapade sessionen och välj Starta session alternativ, som visas nedan:

För att se den fångade sessionen har du möjlighet att öppna den fysiska filen som tidigare konfigurerats för att lagra händelserna, eller helt enkelt högerklicka på den skapade sessionen och välj Titta livedata alternativ, som visas nedan:

Ett nytt fönster kommer att öppnas som visar de insamlade händelserna med egenskapsvärdena för varje händelse, enligt nedan:

Även om du enkelt kan skapa utökade händelser med några få klick, möter du fortfarande vissa svårigheter när du försöker välja rätt händelse att övervaka, på grund av komplexiteten i namnkonventionen för händelser, som gör det svårt att förstå syftet bakom varje händelse. Dessutom är det grafiska användargränssnittet där sessionsinformationen visas fortfarande inte användarvänligt vilket komplicerar att analysera händelserna och deras egenskaper. Från denna punkt ökar behovet av ett mer användarvänligt verktyg från tredje part, vilket vi kommer att diskutera i nästa avsnitt av den här artikeln.

dbForge Event Profiler

dbForge Event Profiler för SQL Server är en GRATIS verktyg som ger dig möjligheten att fånga och analysera SQL Server-händelserna och lagra händelsedata i en fysisk spårningsfil för senare undersökning.

dbForge Event Profiler för SQL Server övervinner problemet med SQL Profilers prestandaförsämring genom att köra med högsta möjliga prestanda och minimal serverbelastning med fullt stöd för funktionen Extended Events.

Det som gör dbForge Event Profiler för SQL Server till ett attraktivt verktyg för händelseprofilering över funktionen för utökade händelser är Frågesyntaxmarkeringen funktion som inte är tillgänglig i funktionen SQL Profiler eller Extended Events. Dessutom ger det möjlighet att utföra filtrering och sortering operationer i nätet med spårningsresultat.

dbForge Event Profiler för SQL Server kan enkelt användas för att övervaka olika typer av aktiviteter från SQL Server Database Engine, Analysis Services och Integration Services, felsöka T-SQL-frågor och transaktionsprestandarelaterade problem och övervaka de olika SQL Server-felen och varningar.

Dessutom kan dbForge Event Profiler för SQL Server användas för att granska de olika aktiviteterna för SQL Server-databasanvändare eller utföra stress- eller kvalitetssäkringstester. Du kan också helt enkelt skapa dina egna anpassade spår och spara dem för framtida bruk.

För att kunna använda dbForge Event Profiler för SQL Server för att fånga SQL Server-händelserna måste du ladda ner den från dbForge-nedladdningssidan gratis och installera den på din SQL Server eller maskin med hjälp av den enkla installationsguiden enligt nedan :

För att starta installationsprocessen, klicka på INSTALLERA knappen från Välkommen sida och ange platsen där du vill installera verktyget, från Välj destination sida nedan:

När du har angett installationsplatsen klickar du på Nästa knapp. I Genvägar anger du om du planerar att skapa en genvägsikon för dbForge-verktyget på skrivbordet och klickar sedan på Nästa för att fortsätta:

Filassociationer sida kommer du att bli ombedd att ange filtillägget för filerna som kommer att associeras med dbForge-verktyget. Välj filtillägget för de filer du planerar att öppna med det här verktyget och klicka sedan på Nästa för att fortsätta:

Startoptimering sida, granska och välj det bästa alternativet för verktygets prestandaanvändning och klicka sedan på Nästa för att fortsätta:

Nu startar installationsprocessen, baserat på dina val, med förloppsindikatorn som visar status för installationsprocessen, som visas nedan:

Efter att installationen av dbForge Event Profiler för SQL Server har slutförts framgångsrikt kommer guiden att meddela dig och ge dig ett alternativ att starta verktyget direkt efter att ha stängt installationsguiden, enligt nedan:

Välkomstsidan för dbForge Event Profiler för SQL Server är användarvänlig och alla som är bekanta med SSMS kan enkelt anpassa sig till den. För att starta en ny spårning, klicka på Ny alternativ till höger om verktyget, enligt nedan:

I Profilserverhändelser fönstret måste du ange anslutningsinformationen som kommer att användas för att ansluta till SQL Server-instansen som kommer att övervakas. Om det är den första körningen för verktyget och det inte finns någon tidigare sparad anslutning klickar du på Ny anslutning knappen som visas nedan:

I Anslutningshanteraren fönstret Ny knappen flyttar dig till det kända anslutningsfönstret, där du kommer att bli ombedd att ange SQL Server-instansens namn, autentiseringsläget och de referenser som krävs för att ansluta till SQL Server. När du har angett anslutningsinformationen klickar du på Testa anslutning för att kontrollera om informationen du har angett är giltig, som visas nedan:

Efter att ha tillhandahållit anslutningsinformationen för SQL Server-instansen, välj om du vill använda en befintlig mall, från en lista med användbara mallar som tjänar de flesta spårningsfunktionerna, eller avmarkera den för att ange listan över händelser som du är intresserad av att fånga i nästa steg. Du kan också ange destinationsfilens egenskaper enligt följande:

Händelser att fånga sida, hittar du en användarvänlig och välkategoriserad lista över händelser, som beskrivs på ett meningsfullt sätt, utan att behöva dyka djupt och försöka förstå dess innebörder, som visas nedan:

Bilden nedan visar också alla tillgängliga evenemangskategorier, med antalet evenemang i varje kategori. Nu kan du njuta av att förstå alla tillgängliga händelser genom namnet på kategorin, som tydligt visas nedan:

Efter att ha angett listan över händelser som du är intresserad av att fånga visas Åtgärder sida ger dig möjlighet att ange listan över åtgärder som du vill fånga i den aktuella händelsesessionen, som visas nedan:

Händelsefilter sida, kan du också rita dina egna filter för att minimera antalet insamlade rader för att matcha dina krav och göra det lättare att analysera, som visas nedan:

Kolumnerna sida låter dig ange vilka kolumner du planerar att visa i den aktuella händelsesessionen. Att bara hämta de kolumner som innehåller informationen du är intresserad av att fånga kommer att avsevärt minimera storleken på spårningsfilen och bredden på de returnerade raderna, vilket kommer att göra det lättare att analysera den inhämtade datan, som visas nedan:

Efter att ha anpassat din händelsesession kan du börja fånga händelserna genom att klicka på Kör knappen från föregående bild. Efter att ha startat händelsesessionen kommer verktyget att börja fånga och visa händelserna direkt, som visas nedan:

Den stora fördelen här är att om du klickar på valfri händelse visas en fullständig beskrivning av den med T-SQL-skriptet i användarvänligt färgat teckensnitt i en separat ruta, vilket gör det mycket enkelt att kontrollera och analysera, som visas nedan:

Dessutom kan dbForge Event Profiler för SQL Server fungera som SSMS genom att tillhandahålla en möjlighet att skriva en ny T-SQL-fråga och köra den på den anslutna SQL Server-instansen, som visas nedan:

Verktyget visar också returnerad data i ett användbart rutnät som visar varje kolumnnamn, datatyp och värde, enligt följande:

De flesta av SQL Server-databasadministratörerna stötte på en situation när de försökte köra en stor SQL Server-fil med SSMS som misslyckades med OutOfMemory-felet. dbForge Event Profiler för SQL Server löser detta problem genom att tillhandahålla en funktion för att exekvera alla stora T-SQL-skript i en SQL-fil. Vad du behöver göra är bara att välja Execute Large Script alternativet från Databas-menyn, välj sedan platsen för den skriptfilen, databasen som filen ska köras på och kodningen som används i filen, som tydligt visas nedan:

Slutsats

Från alla tidigare exempel kan du se hur dbForge Event Profiler för SQL Server GRATIS tredjepartsverktyg kan användas för att fånga och analysera de olika typerna av SQL Server-händelser genom att övervinna alla nackdelar med de vanliga händelseregistreringsverktygen. Det är en GRATIS verktyg och det är definitivt värt att använda.


  1. MONTHS_BETWEEN() Funktion i Oracle

  2. SIGN() Funktion i Oracle

  3. Oracle Pipelined funktion Exempel

  4. Hur man schemalägger en lagrad procedur i MySQL