SQL Server övervakningsverktyg
i Del 1 av denna serie täckte vi ett antal funktioner som SQL Server tillhandahåller för att optimera resursanvändningen. Du kan till exempel justera hur dina frågesatser sammanställs, konfigurera buffertcachen så att den spolas med olika intervall och skapa minnesoptimerade tabeller. För att få ut det mesta av dessa funktioner krävs att du får insikter i realtid om SQL Servers hälsa och prestanda. Här undersöker vi SQL Server-övervakningsverktyg inom inbyggda funktioner och vanliga applikationer, inklusive:
- T-SQL-frågor: använd SQL Servers frågespråk för att samla internt insamlade data
- SQL Server Management Studio (SSMS): få realtidsvyer i ditt system, diagram över T-SQL-frågor och on-demand-rapporter
- Performance Monitor: Korrelera mätvärden från SQL Server med data från dina Windows-värdar
SQL Server-övervakningsverktyg kan hjälpa dig att komma åt de mätvärden som vi diskuterade i Del 1. Några av dessa verktyg rapporterar samma mätvärden, och du kanske föredrar ett gränssnitt framför det andra. Du kan till exempel använda antingen Prestandaövervakaren eller T-SQL-frågorna för att hämta mätvärden från SQL Servers prestandaräknare. Du kan välja realtidsdiagrammen för den tidigare kontra förmågan att skriva den senare. I det här inlägget förklarar vi hur du använder SQL Server-övervakningsverktyg för att få en omfattande bild av din databasinfrastruktur.
använda T-SQL-frågor
du kan övervaka SQL Server genom att använda sitt eget frågespråk, T-SQL, för att samla mätvärden. T-SQL-frågor är flexibla. Du kan köra dem med ett grafiskt hanteringsverktyg som SSMS eller ett kommandoradsverktyg som sqlcmd
. Och eftersom de körs och returnerar data precis som alla andra databasfrågor kan du enkelt integrera dem i en hemodlad automatiserad övervakningslösning. I det här avsnittet visar vi hur T-SQL-frågor kan vara ett kraftfullt verktyg för SQL Server-övervakning, oavsett om du använder dynamiska hanteringsvyer, inbyggda funktioner, lagrade procedurer eller systemdatasamlingssatser.
dynamiska hanteringsvyer
SQL Server spårar data om sin egen hälsa och prestanda och gör denna information tillgänglig via dynamiska hanteringsvyer (DMV). Eftersom DMV: er visas som virtuella tabeller, lämpar de sig för både ad hoc och automatiserad fråga. Vissa DMVs returnerar det aktuella värdet för ett mätvärde eller en inställning (t. ex., den aktuella storleken på transaktionsloggen i megabyte). Andra, särskilt mätvärdena för priser inom prestandaräknarna DMV, mäter värden med jämna mellanrum och tar skillnaden mellan på varandra följande prover (t.ex. batchförfrågningar per sekund). Du kan läsa om specifika DMV i SQL Server-dokumentationen.
om du övervakar SQL Server med dynamiska hanteringsvyer vill du förmodligen fråga prestandaräknarna DMV, sys.dm_os_performance_counters
. Varje SQL Server-prestandaobjekt (som kan representera allt från en databas till plancachen) upprätthåller sin egen uppsättning prestandaräknare, som kartlägger många av de kategorier av mätvärden som diskuteras i Del 1: SQL-statistik, lås och bufferthanteraren.
du kan till exempel fråga prestandaräknarna DMV för att visa data från buffer manager performance-objektet och begränsa resultaten till mätvärden med icke-nollvärden:
SELECT object_name, counter_name, cntr_value FROM sys.dm_os_performance_counters WHERE object_name="SQLServer:Buffer Manager" AND cntr_value != 0;GO
du får ett resultat som liknar detta (men med många fler rader!):
object_name counter_name cntr_value---------------------------------------------------------------------------------------SQLServer:Buffer Manager Buffer cache hit ratio 30SQLServer:Buffer Manager Buffer cache hit ratio base 30SQLServer:Buffer Manager Page lookups/sec 11091500SQLServer:Buffer Manager Database pages 5819SQLServer:Buffer Manager Target pages 212992SQLServer:Buffer Manager Integral Controller Slope 10
du kan hitta en lista över tillgängliga dynamiska hanteringsvyer organiserade efter kategori här. Inom varje kategori är vyerna olika – medan vissa beräknar prestandamått och utgångsnummer, andra rapporterar namn och egenskaper. Du kan lista SQL Server-noderna i ett kluster, hämta indexanvändningsdata och få statistik för dina exekveringsplaner som slutförandetid och resursanvändning. Och eftersom dynamiska hanteringsvyer fungerar som tabeller kan du använda inbyggda funktioner för att aggregera och rangordna data.
det är viktigt att kontrollera dokumentationen för alla DMV du planerar att använda. En anledning är att DMV: er kräver olika behörigheter, och dokumentationen för varje DMV förklarar den önskade nivån. En annan anledning är att DMV: er kan innehålla tusentals rader och kolumner kan ändras med nya versioner av SQL Server.
inbyggda funktioner
SQL Server innehåller också inbyggda funktioner som hjälper dig att komma åt systeminformation. Till skillnad från dynamiska hanteringsvyer, som returnerar data i form av virtuella tabeller, returnerar inbyggda funktioner systemdata som enskilda numeriska värden, beräknade sedan servern senast startades. Du kan ringa varje inbyggd funktion som argumentet för ett SELECT
– uttalande. Du kan till exempel använda den inbyggda funktionen @@connections
för att returnera summan av framgångsrika och misslyckade anslutningar över tiden:
SELECT @@connections AS "Total Connections";GO
du får utdata som liknar:
Total Connections----------------- 1571
inbyggda funktioner liknar ibland dynamiska hanteringsvyer. @@connections
liknar räknaren User Connections
i objektet allmän statistik. Men medan User Connections
spårar antalet för närvarande anslutna användare, ökar @@connections
varje gång en användare försöker logga in (även om försöket misslyckas).
den enda inbyggda systemstatistikfunktionen som inte returnerar ett enda numeriskt värde är sys.fn_virtualfilestats
, som returnerar en tabell med data på disk I/O för databasfiler och ger samma information som sys.dm_io_virtual_file_stats
dynamisk hanteringsvy.
system lagrade procedurer
Redaktörens anmärkning: SQL Server använder termerna” master ” för att identifiera sin primära databas. Datadog använder inte denna term.
en annan inbyggd funktion som du kan använda för att fråga mätvärden är den systemlagrade proceduren. De flesta lagrade procedurer hjälper till med administrativa uppgifter som att bifoga en databas eller lägga till en inloggning, men vissa lagrade procedurer rapporterar mätvärden. Till exempel mäter sp_spaceused
diskförbrukning i en databas. Du ringer system lagrade procedurer med EXEC
snarare än SELECT
uttalanden. Detta kommando anropar sp_spaceused
lagrad procedur, som returnerar diskanvändningsinformation som två resultatuppsättningar (det vill säga två tabellrader, varje rad inklusive olika kolumner):
EXEC sp_spaceused;GO
utgången kommer att ha ett liknande format som följande:
database_name database_size unallocated space--------------- ----------------- ---------------------master 6.00 MB 0.52 MBreserved data index_size unused--------------- ----------------- ------------------ ------------3568 KB 1536 KB 1600 KB 432 KB
systemdatasamlingsuppsättningar
om du använder T-SQL-frågor för att samla in mätvärden från SQL Server och du vill kunna lagra data och generera rapporter kan du överväga att använda SQL Servers samlingsuppsättningar. En samlingsuppsättning hämtar data från en rad rapporteringskommandon och dynamiska hanteringsvyer och skickar data till en dedikerad databas som kallas ett Hanteringsdatalager.
processen bygger på SQL Server Integration Services för att automatisera uppgiften att fråga databasen och skriva resultaten till Hanteringsdatalagret.
till exempel, från och med SQL Server 2008, frågar diskanvändningssamlingssatsen sys.dm_io_virtual_file_stat
dynamisk hanteringsvy och andra vyer som sys.partitions
och sys.allocation_units
. Du kan också skapa en anpassad samling uppsättning som corrals en sekvens av T-SQL-frågor i ett periodiskt jobb som körs i bakgrunden. Du kan läsa mer om hur du konfigurerar Data Management Warehouse här.
SQL Server Management Studio
SQL Server Management Studio (SSMS) är en grafisk miljö som hjälper dig att övervaka ditt system på flera sätt:
- livestatistik i Aktivitetsövervakaren
- en datarik karta över en given fråga
- rapporter som kombinerar tabeller, diagram och text i ett skrivarvänligt format
om du vill använda SSMS måste du ladda ner den på en av dina värdar, öppna installationsprogrammet och följa anvisningarna. Programvaran kan övervaka fjärrinstanser av SQL Server, inklusive alla instanser som körs på Linux. För att ansluta till en värd, navigera till ”Arkiv” – menyn och klicka på ”Anslut Object Explorer.”I den dialog som följer anger du värden och porten i fältet ”servernamn”, i formatet 0.0.0.0,0000
(notera kommatecken). Välj ”SQL Server Authentication” i rullgardinsmenyn”Authentication” och fyll i användarnamnet (”logga in”) och lösenordet.

om du har anslutit framgångsrikt ser du fönstret ”Object Explorer” fylla i ett filträd som visar komponenterna i din SQL Server-instans, inklusive databaser. Du kommer då att kunna övervaka din instans med funktionerna som visas nedan.
Aktivitetsmonitor
Aktivitetsmonitorn gör det möjligt att visa SQL Server-mätvärden i realtid, med ett galleri med grafer, en översikt över processer och statistik om dina frågor. Om du redan använder SSMS för hanteringsuppgifter som att konfigurera resurspooler eller skapa tabeller är Aktivitetsövervakaren lätt att lägga till i ditt arbetsflöde. För att använda Aktivitetsmonitorn, skriv ”Ctrl-Alt-A” eller klicka på ikonen i SSMS-verktygsfältet.

du kan använda Aktivitetsövervakaren för att få insikter i realtid om efterfrågan på din SQL Server-instans. Avsnittet ”Översikt” visar fyra grafer som visar arbets-och resursmått i realtid. Som standard uppdateras dessa mätvärden var 10: e sekund, men du kan uppdatera uppdateringsintervallet genom att högerklicka på rutan ”översikt”. Medan uppdateringsintervallet kan vara så frekvent som en gång per sekund, kommer detta med prestandakostnaden för mer frekventa databasfrågor.
fönstret ”senaste dyra frågor” i Aktivitetsmonitorn kan hjälpa till att ge den information du behöver för att göra dina frågor mer effektiva. Här hittar du frågerelaterade mätvärden som avrättningar per minut, fysiska läsningar per sekund och antalet dubbletter av en exekveringsplan i cachen. Om en enda exekveringsplan har ett stort antal dubbletter eller avrättningar per minut kan du kanske öka prestandan genom att använda frågetips som diskuteras i Del 1.
Aktivitetsövervakaren ger en bekväm översikt över din databas på hög nivå, men den har sina gränser. För det första kan du inte justera storleken på graferna eller mätvärdena som de visar. Du kan inte heller ändra hur Aktivitetsövervakaren aggregerar sin statistik för frågeprestanda eller visa data utöver det förinställda visningsfönstret.
visualisera frågor
SSMS kan hjälpa dig att optimera frågeprestanda genom att du kan visualisera hur SQL Server utför sina frågeplaner och visar resursanvändningen i samband med att utföra varje steg i en frågeplan. Som vi diskuterade i Del 1 sammanställer SQL Server satser av T-SQL-satser genom att använda en automatisk optimerare för att omvandla batchen till en exekveringsplan. Du kan inspektera en exekveringsplan i SSMS som ett diagram över beräkningssteg och ta reda på exakt hur optimeraren tolkade din sats. För att visualisera en fråga, navigera till Aktivitetsmonitorns” senaste dyra frågor ”-fönster, högerklicka på en av frågorna och klicka på ” Visa Exekveringsplan.”Utsikten som följer kommer att se ut så här:

om du för muspekaren över en nod i diagrammet, du kan se en kort förklaring av steget noden representerar, samt en snabb avläsning av nodens ”beräknade Operatörskostnad.”Detta värde beräknas av SQL Server optimizer när du kör frågan. Eftersom optimeringsprocessen är automatisk ger detta dig ett sätt att kontrollera att dina satser har sammanställts som avsedda. Och eftersom varje steg i exekveringsplanen görs efter kostnad kan du se vilka steg du bör fokusera på om du vill öka prestandan.
i det här exemplet kan vi se att Compute Scalar
(konvertera en sträng till en flottör) är minimal, med nollkostnad i exekveringsplanen. Den mest kostsamma operationen är en optimeringsteknik, bordspolning, som kopierar rader till ett dolt tillfälligt bord.
rapporter
SSMS erbjuder 20 standardrapporter som ger en hög höjd undersökning av din SQL Server-distribution, Allt från databasens resursanvändning till historiska data om schemaändringar och databas konsekvens. Du kan hitta en detaljerad uppdelning av rapporterna här.

rapporter fixas i layout och innehåll—de visar tillgängliga data när du skapar rapporten, istället för att uppdateras i realtid. Interaktiviteten i standardrapporterna är begränsad. Du kan sortera vissa tabeller efter kolumn och expandera andra när information är kapslad. Den fasta layouten gör det enkelt att skapa utskrifter eller dokument (PDF, Word och Excel).
i 2017 lade Microsoft till rapporten Performance Dashboard, som visar CPU-användning, nuvarande antal användarsessioner och annan systeminformation för SQL Server-instanser.
för att skapa en rapport, högerklicka på namnet på en databas i Object Explorer, muspekaren över ”rapporter” och sedan över ”standardrapporter” och välj en rapport från menyn.
om du inte hittar den vy du behöver från SSMS-standardrapporterna kan du skapa en anpassad rapport. Anpassade rapporter skrivs i Report Definition Language (RDL), en förlängning av XML. När du har angett strukturen för en anpassad rapport kan du fylla i den från menyn ”Rapporter” genom att klicka på ”anpassade rapporter.”Dessa förblir separata från listan över standardrapporter.
det är också värt att notera att Microsoft har utvecklat flera verktyg för att skapa grafiska rapporter som går utöver SSMS-funktionaliteten. Power BI kan visualisera data från ett antal källor, inklusive SQL Server, och levereras med en mer fullfjädrad uppsättning visuella redigeringsverktyg. SQL Server Reporting Services (SSRS) är ett grafiskt rapporteringsverktyg utformat för SQL Server som kan generera paginerade, PDF-klara rapporter samt datavisualiseringar för Mobila enheter och webben.
Prestandamonitor
Windows Performance Monitor hjälper dig att visualisera resursanvändning på systemnivå från dina Windows-värdar och gör att du kan korrelera dessa mätvärden med SQL Server-prestandaräknare i tidsseriegrafer.

Performance Monitor är inbyggd i Windows-operativsystemet. För att använda det, öppna fönstret Kör från Start-menyn och ange programnamnet perfmon
. En realtidsdiagram visas i navigeringsträdet under ”övervakningsverktyg.”Du kan sedan välja SQL Server performance counters och system resource metrics du vill plotta och använda alternativen för att utforma dina grafer.

Richer realtid SQL Server övervakningsverktyg
i det här inlägget, Vi har visat hur man använder SQL Server övervakningsverktyg och inbyggda funktioner för att generera realtid översikter av dina databaser samt att få detaljerad, on-demand data om SQL Server hälsa och prestanda.
i nästa del av den här serien visar vi dig hur du använder Datadog för att samla in, grafera och varna i realtid och historiska SQL Server-mätvärden. Vi visar också hur du ställer in instrumentpaneler med dra-och-släpp-visualiseringar och korrelerar SQL Server-mätvärden med data från hela stacken.
Write a Reply or Comment