sql >> Databasteknik >  >> RDS >> Sqlserver

Topp 10 vanliga frågor om SQL Server Performance Monitoring

Prestandaövervakning av SQL Server anses av många databasadministratörer vara deras viktigaste ansvar. Med tanke på att dåligt presterande servrar kan negativt påverka inte bara den interna verksamheten utan även kundnära applikationer, är spårning av SQL-prestanda och snabb mildring av problem avgörande för företagets framgång och lönsamhet.

I takt med att fler organisationer vänder sig till SQL Server, letar DBA allt oftare efter resurser för att hjälpa dem att implementera en solid prestationsövervakningsstrategi. Det finns ett överflöd av dokumentation tillgänglig för att hjälpa DBA:er att komma igång med sin SQL Server-prestandaövervakning, men det finns några universella frågor som nästan varje DBA vill ha ett snabbt svar på. Här är svaren på 10 av de vanligaste frågorna om SQL Server-prestandaövervakning.

Vad är SQL Server-prestandaövervakning?

Huvudsyftet med SQL Server-prestandaövervakning är att säkerställa konsekvent prestanda och hög tillgänglighet för SQL Server-instanser. Prestandaövervakning är en process i två delar, och båda delarna är viktiga för att ditt system ska fungera optimalt:

  • Övervakning: Spåra ett brett utbud av prestandamått mot förinställda trösklar för att identifiera onormalt beteende och tillhandahålla en mekanism för att informera DBA med larm som är specifika för problemet och ger tillräckligt med sammanhang för att påbörja diagnostikprocessen.

  • Diagnostik: Arbetsflödet och verktygen som krävs för att fastställa källan till ett prestandaproblem och de data som krävs för att åtgärda det omedelbara problemet.

  • Root Cause Analysis: Insikterna för att se bortom symptomen och identifiera underliggande problem som utlöste problemet och kan få det att återuppstå.

  • Trendanalys: Titta på prestanda över längre tidsperioder. Använd trendanalys för att identifiera problem innan de uppstår, så särskilj mellan engångsproblem och återkommande problem eller för att undersöka arbetsbelastningens gränser över tid. Det senare kan användas för att förutsäga framtida infrastrukturbehov, informera om konsolideringsinsatser eller rätt storlek för planerad molnmigrering.

Vilka databasprestandaövervakningsverktyg är bäst?

Antalet databaser en DBA ansvarar för gör manuell övervakning och diagnostik opraktisk – kanske till och med omöjlig. Lyckligtvis är de senaste mjukvarulösningarna för prestandaövervakning utrustade med massor av funktioner för att göra prestandaövervakning hanterbar, även i stor skala:

  • Effektiv larmhantering: Att prioritera larm innebär att du kan ta itu med de stora problemen först och ignorera falska larm.

  • Omfattande diagnostik: De bästa verktygen för prestandaövervakning låter dig fördjupa dig i diagnostik. Att veta att det finns ett problem är inte alls lika användbart som att veta hur man åtgärdar det.

  • Snabb tid till värde: Varje instans samlar in hundratals mätvärden, och att lagra dem på plats blir snabbt dyrt. Överväg en av SaaS prestandaövervakningslösningar för kostnadsbesparingar och skalbarhet.

  • Analytics: Robust analys är en viktig skillnad mellan verktyg för prestandaövervakning. För maximal effekt på prestanda, välj ett verktyg som ger omfattande mätvärden för arbetsbelastning, frågeplan, larmgrundorsak och blockering.

  • Historisk dataspårning: Leta efter ett prestandaövervakningsverktyg som sparar historisk data. Detta kommer att påskynda felsökningen eftersom du kommer att veta om ett problem återkommer och hur problem spåras över tiden.

  • Optimering av justering och frågeplan: Ett verktyg med inbyggd artificiell intelligens gör att du kan finjustera frågor och optimera dem för en specifik instans.

  • Hälsokontroller: Hälsokontroller övervakar SQL Servers vitala tecken för att låta dig veta att du kan ha ett problem – ibland innan problemet ens existerar.

Om du vill ha ett verktyg med alla funktioner som diskuterats ovan, måste du titta på en av de molndrivna SQL Server-lösningarna för prestandaövervakning. Oöverträffade i skalbarhet, flexibilitet och pris, ger dessa övervakningsverktyg en säker prestandaövervakningsplattform för att möta alla behov.

Vad är det bästa sättet att optimera övervakningen av databasprestanda?

Ett av de bästa sätten att optimera prestandaövervakning är automatisering. Att automatisera vanliga uppgifter – som att övervaka diskutrymme, inspektera felloggar och verifiera databassäkerhetskopiorna – säkerställer att dessa uppgifter slutförs, vilket ger DBA mer tid att utföra mer värdefullt arbete.

Dessutom kan du implementera följande för att optimera din SQL Server-prestandaövervakning:

  • Mobilövervakning: Mobil övervakning är tillgänglig från dina Android- och iOS-enheter. Mobil prestandaövervakning tillhandahåller värmekartor, smarta larm och larmlistor och låter dig diagnostisera problem och påbörja triage var som helst.

  • Trimning och frågeoptimering: Med prestandajustering kan du visualisera, analysera och optimera dina SQL-frågor och exekveringsplaner genom att lyfta fram de mest kostnadseffektiva operatörerna, erbjuda förslag på korrigeringar för problem och skriva om/optimera dina frågor och frågeplan.

  • Hälsokontroller: Hälsokontroller hjälper dig att optimera din prestandaövervakning genom att lokalisera hälsoproblem inom varje SQL Server-instans, inklusive långa väntetider och I/O-latens. Hälsokontroller ger också historiska data, så att du kan spåra prestandaproblem över tid.

Hur ska jag välja ett SQL Server-övervakningsverktyg?

Det finns två huvudsakliga överväganden när du bestämmer dig för ett SQL Server-prestandaövervakningsverktyg.

Vilken typ av verktyg letar du efter?

Det finns tre primära typer av verktyg för prestandaövervakning att överväga:

  • Anpassad/inbyggd intern: I det här fallet, kom ihåg att bara för att du kan göra något betyder det inte alltid att du borde. Ja, du kan sätta ihop ett internt prestandaövervakningsverktyg för att samla in mätvärden med hjälp av PerfMon, spår, DMV:er och XEvents. Men nackdelarna överväger vida fördelarna med att ta denna väg. Det är inte skalbart, så när dina instanser ökar blir dina prestandaövervakningsmöjligheter lidande. Det är inte heller möjligt att övervaka alla saker du behöver titta på för att säkerställa optimal SQL Server-prestanda. När du väl börjar samla in data måste du lagra den någonstans för att den ska vara användbar, och det kan bli dyrt. Summa summarum - är det mer värdefullt för dig att lägga din dyrbara tid på att bygga och underhålla ett prestandaövervakningsverktyg eller att ägna det åt att fixa och finjustera uppdragskritiska arbetsbelastningar.

  • Gratis/öppen källkod: Detta är potentiellt ett bättre val än att skapa din egen lösning för prestandaövervakning, men det finns fortfarande begränsningar. Även om du får lite anpassning, saknar du fortfarande bredd på täckning och förkonfigurerad varning. Du kommer också fortfarande att behöva tillhandahålla ditt eget datalagringsutrymme. Det är en komplex process att bygga ett verktyg som effektivt kan fånga in stora mängder prestandadata utan att påverka den övervakade servern, ställa in lämpliga tröskelvärden för hundratals mätvärden, hantera stora mängder data som samlas in och sedan hålla detta uppdaterat från en version av SQL-server till nästa. Fokusera din tid på att lösa problem och inte bygga prestandaövervakningssystem. Om du är beroende av communityuppdateringar kan stödet för nya versioner av en databasplattform fördröja dess release.

  • Kommersiell: Kommersiella verktyg för SQL-prestandaövervakning erbjuder en rad funktioner och anpassningsnivåer, och många är förvånansvärt överkomliga. Kommersiella verktyg underlättar prestandaövervakning med alternativ som hälsokontroller, larmhantering, prestandadiagnostik och mobila övervakningsfunktioner – funktioner som du inte får från kostnadsfria verktyg eller de som är byggda internt.

Vilka är dina behov för din specifika miljö?

Innan du väljer ett verktyg för prestandaövervakning, ställ dig själv dessa frågor för att hjälpa dig hitta verktyget som uppfyller dina specifika behov:

  • Hur många instanser vill du övervaka?

  • Är de samlokaliserade eller spridda?

  • Finns de på plats eller i molnet (eller båda)?

  • Har du råd med en engångsbetalning för infrastruktur och licensiering, eller behöver du fördela kostnaden?

  • Har du infrastruktur- och databasinstanser tillgängliga att dedikera till ett övervakningsverktyg?

  • Har du tid eller resurser internt för att bygga och underhålla övervakningsinfrastruktur?

  • Har verktyget förmågan att dissekera arbetsbelastningen på flera dimensioner omedelbart, för att spara timmar av skripttid?

  • Finns det en smart förmåga att analysera data och hjälpa dig att identifiera specifika problem?

  • Tillhandahåller verktyget omedelbar diagnostik, bästa praxis eller diagnos till den relevanta borrningen?

Vad är det bästa sättet att övervaka databasprestanda?

Det finns flera tecken på att din SQL Server är ohälsosam, inklusive:

  • Allmän nedgång i arbetsbelastningen

  • Timeout för anslutning/fråga

  • Överdriven CPU-användning

  • Minnestryck

  • Överdriven I/O-läs-/skrivfördröjning

  • Överdriven transaktionslogg eller TempDB-storlek

Om du märker något av dessa symtom är det dags att ställa in hälsokontroller för att få ditt system tillbaka till toppprestanda. Några första steg du kan vidta för att identifiera orsaken till prestandaproblem inkluderar:

  • Upprätta en prestandabaslinje och mäta mot den

  • Verifierar säkerhetskopior

  • Söker efter saknade index

  • Bestämma hur stor procentandel av arbetsbelastningen som kommer från ad hoc-frågor

Vilka är de bästa mätvärdena för SQL Server-prestandaövervakning?

Det finns hundratals mätvärden du kan mäta för att hjälpa dig spåra och förbättra prestanda, men det finns några framstående som bör vara en del av varje underhållsplan för SQL Server. Här är några av de viktigaste områdena att övervaka och de mätvärden du vill hålla ett öga på:

  • Index. Index är en frekvent källa till prestandaproblem eftersom databaser är i ett konstant tillstånd av förändring. Data läggs till och tas bort, och index ändras och raderas, vilket allt bidrar till dålig prestanda. Det här är mätvärdena att titta på:

    • Fyllningsfaktor
    • I/O
    • Fragmentering
  • Buffertcache. Det är viktigt att konfigurera buffertcache för att optimera hur lång tid sidorna stannar där utan att överdriva det och försämra minne som behövs någon annanstans. Det här är mätvärdena att titta på:

    • Sidens förväntade livslängd
    • Träffförhållande för buffertcache
  • T-SQL. Istället för att köra SQL-satser ad hoc, batchar SQL Server dem, kompilerar dem till en exekveringsplan och cachar dem, och kompilerar om satserna efter behov. Överdriven kompilering och omkompilering kan försämra prestandan. Det här är mätvärdena att titta på:

    • SQL-kompilationer
    • SQL-omkompilationer
  • Andra mätvärden att titta noga på:

    • Låser väntan och blockerade processer
    • CPU-användning

Vilka är vanliga problem vid övervakning av databasprestanda?

Prestanda flaskhalsar

Prestandaflaskhalsar visar sig som långsamma eller inte svarar databaser. Flaskhalsar kan vara svåra att lokalisera eftersom de kan vara minnes-, lagrings- eller processorrelaterade. Det finns dock några ställen du bör leta efter problem först:

  • WITELOG väntetid
  • NESTED LOOP JOIN
  • TempDB-påstående

Låg förväntad livslängd på sidan (PLE)

Låg PLE skadar prestandan eftersom SQL Server måste gå till disken oftare för att hitta datafiler, vilket tar mycket längre tid än att läsa dem från buffertcachen.

Fragmentering

Kontrollera dina index för överdriven fragmentering. SQL Server-prestanda blir lidande när den måste söka på spridda och delvis fyllda sidor för att hitta data.

Hur ska jag ställa in mitt system för övervakning av databasprestanda?

När du väl har bestämt dig för en lösning för SQL Server-prestandaövervakning är det dags att få igång den. Även om du kanske vill dyka in i alla glänsande nya funktioner direkt, kommer att ta ett steg tillbaka och närma dig processen metodiskt för att säkerställa att du får ut det mesta av ditt system. Här är några tips för hur du kan använda ditt nya prestationshanteringsverktyg:

  • Bestäm vilka fall som behöver din uppmärksamhet mest

  • Gå igenom förutsättningarna

  • Känna till dina systemkrav

  • Ladda ner installationsprogrammet

  • Lägg till anslutningar

Vilka frågor kan jag använda för att övervaka SQL-serverns prestanda?

Frågorna du använder för resultatövervakning kommer att variera beroende på de mätvärden du spårar. Men att upptäcka minnesproblem, bedöma indexdefragmentering och identifiera oacceptabla väntetider är troligen högst upp på varje DBA:s checklista för prestandaövervakning. Microsofts SQL Server-dokumentation ger detaljer för ett antal frågor som hjälper dig att implementera din prestationsövervakningsplan:

  • Minnesanvändning

  • Indexdefragmentering

  • Väntestatistik

Vilka är de bästa metoderna för övervakning av databasprestanda?

Vissa människor håller inte med om termen "bästa praxis", men när det kommer till SQL Server-prestandaövervakning finns det inga argument för att det finns vissa saker som en DBA måste göra för att hålla systemet friskt och användarna nöjda.

Gör indexunderhåll till en prioritet

Att försumma dina index är ett säkert sätt att generera prestandaproblem. Index är källan till vanliga prestandadödare, inklusive fragmentering och siddelningar.

Känn din arbetsbelastning

Det är svårt att veta när du har ett problem om du inte vet hur "normalt" ser ut. Ta dig tid att lära känna din arbetsbörda genom att ställa frågor som:

  • När är den här instansen som mest upptagen?

  • Vilka program använder den här instansen?

  • När säkerhetskopierades senast?

  • Har den här instansen kända prestandautmaningar?

Välj ett verktyg för prestandaövervakning som uppfyller dina specifika behov

Innan du bestämmer dig för ett SQL Server-prestandaövervakningsverktyg måste du först definiera dina behov. När du väl förstår vad du försöker uppnå med ditt prestationsövervakningsverktyg kan du med tillförsikt hitta en lösning med de funktioner som uppfyller dina krav.

Hitta och åtgärda prestandaflaskhalsar

Uppenbara symtom på prestandaflaskhalsar inkluderar användning av för mycket minne, långa väntetider, indexfragmentering och för många eller för få index. Att snabbt hitta och åtgärda dessa flaskhalsar är en av DBA:s primära ansvarsområden. Det bästa sättet att hålla databasprestanda på topp är att implementera ett prestandaövervakningsverktyg som hjälper dig att enkelt hitta och åtgärda prestandaflaskhalsar och andra källor till prestandaförsämring.


  1. Trender under 2020 som DBA:er bör vara medvetna om

  2. Dela upp värden över flera rader

  3. PostgreSQL:hur konverterar man från Unix-epok till idag?

  4. Smutsiga hemligheter av CASE-uttrycket