sql >> Database >  >> RDS >> Sqlserver

Hoe u SQL Server-gebeurtenissen vastlegt en analyseert

Wanneer u als SQL Server-databasebeheerder werkt, moet u de vaardigheden hebben om diep in de oceaan van de SQL Server-engine te duiken en te ontdekken wat er intern gebeurt, zodat u elk probleem kunt detecteren, oplossen en oplossen.
U kunt profiteren van de logboeken die lokaal door de SQL Server-engine zijn geschreven in de vorm van SQL Server-logboeken of extern in de vorm van gebeurtenislogboeken, maar u kunt ze niet beschouwen als de enige bron voor uw probleemoplossing en afstemming operaties.

SQL Server biedt u een aantal ingebouwde functies die kunnen worden gebruikt om de verschillende typen SQL Server-gebeurtenissen te verzamelen. In dit artikel gaan we door deze ingebouwde functies en beschouwen we een van de meest efficiënte gratis tools van derden die kunnen worden gebruikt om SQL Server-gebeurtenissen te verzamelen en te analyseren.

SQL-profiler

SQL Server Profiler wordt veel gebruikt door SQL Server-databasebeheerders en -ontwikkelaars om verschillende typen gebeurtenissen te verzamelen over de query's die worden uitgevoerd op de verbonden SQL Server-instantie en deze informatie vervolgens te gebruiken om de queryprestaties te verbeteren.

SQL Profiler biedt u de mogelijkheid om een ​​grote verscheidenheid aan gebeurtenissen vast te leggen, de gebeurteniseigenschappen waarin u geïnteresseerd bent op te geven en de vastgelegde gegevens te filteren op basis van eerder opgegeven eigenschapswaarden. U kunt tot op welke diepte bekijken welke gebruiker welk type actie uitvoert op welke databasetabel, vanaf welke machine en op welk tijdstip precies. Bovendien geeft SQL Profiler het aantal verbruikte bronnen weer en laat het zien of de actie is voltooid of mislukt met een fout.

Het verzamelen van gebeurtenissen via SQL Profiler wordt uitgevoerd met behulp van een aantal bestaande sjablonen of door uw eigen aangepaste sjabloon te maken met behulp van de bestaande gebeurtenissen. Eerst moet u verbinding maken met het SQL Server-exemplaar van waaruit u de gebeurtenissen wilt vastleggen, door de naam van het SQL Server-exemplaar op te geven, de verificatiemethode en de referenties die nodig zijn om verbinding te maken met dat SQL Server-exemplaar, zoals hieronder weergegeven:

Nadat u verbinding heeft gemaakt met de SQL Server-instantie, wordt u gevraagd de sjabloon op te geven voor de te verzamelen gebeurtenissen, op basis van het doel van het profileringsproces, zoals hieronder weergegeven:

U kunt aan de vorige afbeelding zien dat SQL Profiler u een optie biedt om het traceerresultaat op te slaan in een bestand of in een bestaande databasetabel. Als geen van de verstrekte sjablonen aan uw vereisten voldoet, kunt u eenvoudig naar de Evenementenselectie . gaan tab en vink aan om alle gebeurtenissen en kolommen weer te geven en filter vervolgens de vastgelegde gebeurtenissen met de eigenschappen waarin u geïnteresseerd bent. U kunt bijvoorbeeld filteren om gebeurtenissen vast te leggen die afkomstig zijn van een specifieke database, een databasegebruiker, een databasetabel, hostmachine enzovoort aan, als volgt:

Zodra je de evenementen hebt geselecteerd waarin je geïnteresseerd bent, klik je op Uitvoeren knop en begin met het ontvangen van gebeurtenissen uit de geselecteerde database, zoals hieronder getoond:

Houd er rekening mee dat als u geen erg nauwkeurig filter definieert om alleen de gebeurtenissen te verzamelen waarin u bent geïnteresseerd, SQL Profiler een groot aantal gebeurtenissen verzamelt die moeilijk te lezen en te analyseren zijn. Bovendien is het niet aanbevolen om de SQL Profiler-tool in de productieomgeving uit te voeren, omdat deze de serverbronnen zal "opeten" en de prestaties ervan zal verminderen. Als je het dringend nodig hebt, probeer dan de reikwijdte van de vast te leggen gebeurtenissen te beperken door nauwkeurige filters te gebruiken.

Uitgebreide evenementen

Om het prestatieverlies te verhelpen dat wordt veroorzaakt door het gebruik van het verouderde hulpprogramma SQL Profiler om de verschillende typen SQL-gebeurtenissen vast te leggen, is in SQL Server 2008 een lichtgewicht, zeer schaalbare en configureerbare functie voor prestatiebewaking geïntroduceerd die kan worden gebruikt bij het verzamelen van nuttige informatie van het brede scala aan beschikbare acties, met het minst mogelijke verbruik van SQL-bronnen, wat helpt bij het oplossen van problemen en het afstemmen van de prestaties van de SQL Server-query's. Deze functie voor het vastleggen van gebeurtenissen heet SQL Server Extended Events .

De functie Extended Events is toegankelijk via SQL Server Management Studio, vanuit de Extended Events optie onder het Management knooppunt. Om een ​​nieuwe Extended Events-sessie te maken, klikt u met de rechtermuisknop op de Sessions optie, onder de Uitgebreide evenementen knooppunt en selecteer Nieuwe sessie zoals hieronder:

Van de Nieuwe Sessie venster, hebt u de mogelijkheid om te kiezen uit een aantal beschikbare sjablonen, met meer voorgedefinieerde sjablonen dan de SQL Profiler-sjablonen, of gewoon om een ​​leeg sjabloon te gebruiken en expliciet de gebeurtenissen op te geven waarin u geïnteresseerd bent, zoals hieronder weergegeven:

Van de Evenementen tabblad kunt u de evenementen waarin u geïnteresseerd bent filteren op basis van de evenementencategorie en vervolgens kiezen welke eigenschappen voor elk evenement u moet ophalen. Daarnaast kunt u een aangepast filter maken om het bereik van de vastgelegde gebeurtenissen te beperken, zoals hieronder weergegeven:

De Opslag pagina biedt u verschillende opties om het sessieresultaat voor Uitgebreide gebeurtenissen op te slaan. In dit voorbeeld bewaren we het traceerresultaat naar een Extended Events-bestand met de onderstaande instellingen:

Nadat u de Extended Events-sessie hebt aangepast om aan uw monitoringvereisten te voldoen, klikt u op OK om de sessie aan te maken. Nadat de sessie is gemaakt, begint deze niet automatisch met het vastleggen van de gebeurtenissen, tenzij u dat configureert tijdens het proces voor het maken van de sessie. Als u wilt dat de sessie gebeurtenissen begint vast te leggen, klikt u met de rechtermuisknop op de gemaakte sessie en selecteert u Sessie starten optie, zoals hieronder getoond:

Om de vastgelegde sessie te bekijken, hebt u de mogelijkheid om het fysieke bestand te openen dat eerder is geconfigureerd om de gebeurtenissen op te slaan, of u kunt gewoon met de rechtermuisknop op de gemaakte sessie klikken en Live-gegevens bekijken selecteren optie, zoals hieronder getoond:

Er wordt een nieuw venster geopend met de verzamelde gebeurtenissen met de eigenschappenwaarden voor elke gebeurtenis, zoals hieronder:

Hoewel u met een paar klikken eenvoudig uitgebreide gebeurtenissen kunt maken, ondervindt u nog steeds enkele problemen bij het kiezen van de juiste gebeurtenis om te controleren, vanwege de complexiteit in de naamgevingsconventie voor gebeurtenissen, waardoor het moeilijk is om het doel achter elke gebeurtenis te begrijpen. Bovendien is de GUI waarin de sessie-informatie wordt weergegeven nog steeds niet gebruiksvriendelijk, wat het analyseren van de gebeurtenissen en hun eigenschappen bemoeilijkt. Vanaf dit punt groeit de behoefte aan een gebruiksvriendelijkere tool van derden, die we in het volgende gedeelte van dit artikel zullen bespreken.

dbForge Event Profiler

dbForge Event Profiler voor SQL Server is een GRATIS tool waarmee u de SQL Server-gebeurtenissen kunt vastleggen en analyseren en de gebeurtenisgegevens kunt opslaan in een fysiek traceerbestand voor later onderzoek.

dbForge Event Profiler voor SQL Server lost het prestatieverlies van SQL Profiler op door te werken met de hoogst mogelijke prestaties en de minimale serverbelasting met volledige ondersteuning voor de functie Extended Events.

Wat de dbForge Event Profiler voor SQL Server aantrekkelijk maakt voor het profileren van gebeurtenissen in plaats van de functie Extended Events, is de Query syntax highlighting functie die niet beschikbaar is in de functie SQL Profiler of Extended Events. Bovendien biedt het de mogelijkheid om de filtering en sortering . uit te voeren bewerkingen in het raster met traceerresultaten.

dbForge Event Profiler voor SQL Server kan eenvoudig worden gebruikt om de verschillende soorten activiteiten van de SQL Server Database Engine, Analysis Services en Integration Services te bewaken, T-SQL-query's en prestatiegerelateerde problemen met transacties op te lossen en de verschillende SQL Server-fouten en waarschuwingen.

Bovendien kan de dbForge Event Profiler voor SQL Server worden gebruikt voor het controleren van de verschillende activiteiten van de gebruikers van de SQL Server-database of voor het uitvoeren van stress- of kwaliteitsborgingstests. U kunt ook eenvoudig uw eigen aangepaste sporen maken en deze opslaan voor toekomstig gebruik.

Om dbForge Event Profiler voor SQL Server te gebruiken om de SQL Server-gebeurtenissen vast te leggen, moet u het gratis downloaden van de dbForge Download-pagina en het op uw SQL Server of machine installeren met behulp van de eenvoudige installatiewizard, zoals hieronder :

Om het installatieproces te starten, klikt u op de INSTALLEREN knop van de Welkom pagina en specificeer de locatie waar u de tool wilt installeren, vanaf de Bestemming selecteren onderstaande pagina:

Nadat u de installatielocatie hebt opgegeven, klikt u op Volgende knop. In de Snelkoppelingen pagina, specificeer of u van plan bent een snelkoppelingspictogram voor de dbForge-tool op uw bureaublad te maken en klik vervolgens op Volgende om verder te gaan:

Op de Bestandskoppelingen pagina, wordt u gevraagd om de extensie op te geven voor de bestanden die worden gekoppeld aan de dbForge-tool. Selecteer de extensie voor de bestanden die u met deze tool wilt openen en klik vervolgens op Volgende om verder te gaan:

Op de Opstartoptimalisatie pagina, bekijk en selecteer de beste optie voor het gebruik van de toolprestaties en klik vervolgens op Volgende om verder te gaan:

Nu begint het installatieproces, gebaseerd op uw selecties, met de voortgangsbalk die de status van het installatieproces toont, zoals hieronder weergegeven:

Nadat de installatie van dbForge Event Profiler voor SQL Server met succes is voltooid, zal de wizard u hiervan op de hoogte stellen en u een optie geven om de tool direct te starten na het sluiten van de installatiewizard, zoals hieronder:

De welkomstpagina van de dbForge Event Profiler voor SQL Server is gebruiksvriendelijk en iedereen die bekend is met SSMS kan zich er gemakkelijk aan aanpassen. Om een ​​nieuwe tracering te starten, klikt u op de Nieuwe optie aan de rechterkant van de tool, zoals hieronder:

In de Profielservergebeurtenissen venster, moet u de verbindingsinformatie opgeven die wordt gebruikt om verbinding te maken met de SQL Server-instantie die wordt gecontroleerd. Als dit de eerste keer is dat de tool wordt uitgevoerd en er is geen eerder opgeslagen verbinding, klik dan op de Nieuwe verbinding knop zoals hieronder getoond:

In de Verbindingsmanager venster, de Nieuwe knop brengt u naar het bekende verbindingsvenster, waar u wordt gevraagd om de naam van de SQL Server-instantie, de authenticatiemodus en de referenties die nodig zijn om verbinding te maken met de SQL Server. Nadat u de verbindingsinformatie hebt opgegeven, klikt u op Verbinding testen om te controleren of de informatie die u heeft ingevoerd geldig is, zoals hieronder weergegeven:

Nadat u de verbindingsgegevens van het SQL Server-exemplaar hebt opgegeven, selecteert u of u een bestaande sjabloon wilt gebruiken, uit een lijst met handige sjablonen die de meeste traceringsfuncties dienen, of deselecteert u deze om de lijst met gebeurtenissen op te geven die u in de volgende stap wilt vastleggen. U kunt ook de eigenschappen van het doelbestand als volgt specificeren:

Over de Evenementen om vast te leggen pagina vindt u een gebruiksvriendelijke en goed gecategoriseerde lijst met gebeurtenissen, die op een zinvolle manier worden beschreven, zonder dat u diep hoeft te duiken en de betekenis ervan probeert te begrijpen, zoals hieronder weergegeven:

De onderstaande afbeelding toont ook alle beschikbare evenementencategorieën, met het aantal evenementen in elke categorie. Nu kunt u genieten van het begrijpen van alle beschikbare evenementen door de naam van de categorie, zoals hieronder duidelijk wordt weergegeven:

Nadat u de lijst met gebeurtenissen hebt opgegeven die u wilt vastleggen, worden de Acties pagina biedt u de mogelijkheid om de lijst met acties op te geven die u in de huidige gebeurtenissessie wilt vastleggen, zoals hieronder weergegeven:

Op de Gebeurtenisfilters pagina kunt u ook uw eigen filters tekenen om het aantal verzamelde rijen te minimaliseren om aan uw vereisten te voldoen en om het analyseren gemakkelijker te maken, zoals hieronder weergegeven:

De Kolommen pagina kunt u specificeren welke kolommen u van plan bent weer te geven in de huidige evenementensessie. Als u alleen de kolommen ophaalt die de informatie bevatten die u wilt vastleggen, wordt de grootte van het traceerbestand en de breedte van de geretourneerde rijen aanzienlijk geminimaliseerd, waardoor het gemakkelijker wordt om de vastgelegde gegevens te analyseren, zoals hieronder weergegeven:

Nadat je je evenementsessie hebt aangepast, kun je beginnen met het vastleggen van de evenementen door op Uitvoeren . te klikken knop uit de vorige afbeelding. Nadat de gebeurtenissessie is gestart, begint de tool de gebeurtenissen direct vast te leggen en weer te geven, zoals hieronder weergegeven:

Het grote voordeel hier is dat het klikken op een evenement een volledige beschrijving ervan toont met het T-SQL-script weergegeven in een gebruiksvriendelijk gekleurd lettertype in een apart vak, wat het heel gemakkelijk maakt om te controleren en te analyseren, zoals hieronder weergegeven:

Bovendien kan dbForge Event Profiler voor SQL Server werken als SSMS door een optie te bieden om een ​​nieuwe T-SQL-query te schrijven en deze uit te voeren op de aangesloten SQL Server-instantie, zoals hieronder weergegeven:

De tool geeft de geretourneerde gegevens ook weer in een handig raster dat elke kolomnaam, gegevenstype en waarde als volgt weergeeft:

De meeste beheerders van SQL Server-databases kwamen een situatie tegen toen ze probeerden een groot SQL Server-bestand uit te voeren met behulp van SSMS dat mislukte met een OutOfMemory-fout. dbForge Event Profiler voor SQL Server lost dit probleem op door een functie te bieden waarmee elk groot T-SQL-script in een SQL-bestand kan worden uitgevoerd. Wat u hoeft te doen is alleen het Execute Large Script . selecteren optie uit het Database-menu, selecteer vervolgens de locatie voor dat scriptbestand, de database waarop dit bestand zal worden uitgevoerd en de codering die in dat bestand wordt gebruikt, zoals hieronder duidelijk wordt weergegeven:

Conclusie

Uit alle voorgaande voorbeelden kunt u zien hoe de dbForge Event Profiler voor SQL Server GRATIS tool van derden kan worden gebruikt om de verschillende soorten SQL Server-gebeurtenissen vast te leggen en te analyseren door alle nadelen van de algemene tools voor het vastleggen van gebeurtenissen te overwinnen. Het is een GRATIS tool en het is zeker de moeite waard om te gebruiken.


  1. php / Mysql beste boomstructuur

  2. Hoe de Modulo-operator werkt in MariaDB

  3. Hoe TimescaleDB gemakkelijk te implementeren?

  4. Manieren om te weten hoe om te gaan met databasecorruptie in SQL Server