sql >> Databasteknik >  >> RDS >> Sqlserver

5 knep för att säkerställa toppprestanda i SQL Server

Databasadministratörer bär många hattar bakom kulisserna – från kapacitetsplanering till säkerhet till dataåterställning. Det kanske mest synliga av DBA:s ansvar är SQL Server-prestandaövervakning. Även om de dagliga uppgifterna som är förknippade med att underhålla ett högpresterande system kan gå obemärkt förbi av omvärlden, tror du bättre att folk kommer att börja uppmärksamma när prestanda är mindre än idealisk.

Databasavbrott, långsamma svarstider och andra användarproblem är dåligt för verksamheten. Och eftersom SQL Server-prestanda (eller brist på sådan) faller helt och hållet i DBA-domänen, är dåligt presterande databaser dåligt för din anställningssäkerhet.

Bortsett från hotet om arbetslöshet, att säkerställa att SQL Servers toppprestanda är avgörande för din organisations förmåga att fungera smidigt, så vi har sammanställt fem knep som DBA:er behöver känna till för att optimera SQL Server-prestanda.

Automatisera rutinuppgifter och underhåll

Nuförtiden finns det liten anledning för en DBA att göra många dagliga uppgifter och underhållskontroller manuellt. Dagens verktyg för SQL Server-prestandaövervakning kan automatiskt övervaka diskutrymme, inspektera felloggar och verifiera säkerhetskopior. Du kan till och med ställa in systemvarningar som inte bara låter dig veta att det finns ett problem utan också ger information om problemets svårighetsgrad och typ.

En av de största fördelarna med dessa övervakningsverktyg är att många av prestandaövervakningsfunktionerna är tillgängliga via din mobila enhet, vilket gör felsökningen mycket mer flexibel. Du kan övervaka och triage ditt system från praktiskt taget var som helst när som helst.

Spåra resultatstatistik

Naturligtvis är det viktigt för dina SQL Server-prestandaövervakningsverktyg att fånga och åtgärda aktuella problem, men det finns också mycket värde i att hålla reda på tidigare prestanda. Att övervaka och analysera databasprestanda över tid hjälper dig att identifiera trender och förutse framtida prestandaproblem. Spårningshistorik ger information om huruvida prestandan är bättre eller sämre under en viss tidsperiod.

Arbetsbelastningsanalys är ett annat sätt att få prestandamått som hjälper dig att förbättra SQL Server-prestanda. Kör en analys för att identifiera hur en användare, databas, värd eller SQL-sats påverkar din arbetsbelastning. Om du isolerar en källa som påverkar systemet negativt, blir det mycket lättare att vidta lämpliga åtgärder för att åtgärda problemet.

Identifiera grundorsaken till flaskhalsar

Som nämnts ovan, när du väl isolerat källan till en flaskhals eller prestationsdödare är det så mycket lättare att åtgärda problemet. Några vanliga källor till flaskhalsar och symtom att se upp för inkluderar:

  • Problem med CPU:SQL Server stör processorn
  • Minnesproblem:Längre körtider på frågorna
  • Lagringsproblem:Extrem aktivitet på diskarna och långa väntetider per I/O
  • I/O-problem:WRITELOG väntetiden är hög jämfört med den totala väntetiden

När du väl har identifierat din flaskhals finns det några vanliga korrigeringar du kan prova som ofta tar hand om vanliga prestandaproblem, inklusive:

  • SQL-serverinställning:Isolera den specifika frågan som var försenad, den specifika väntetiden som orsakade förseningen och tidseffekten av flaskhalsen
  • Bli av med föråldrade och dubblerade index:Snabbar upp frågor eftersom optimeraren inte behöver ta hänsyn till flera index när den analyserar frågeprestanda och fastställer en plan.
  • Åtgärda fragmentering:Regelbunden ombyggnad eller defragmentering av dina index kommer att förbättra prestandan genom att minska antalet spridda eller delvis fyllda datasidor som SQL Server måste läsa.

Kör rutinmässiga prestandahälsokontroller

Förebyggande är nästan alltid bättre än att bota. Använd hälsokontroller för att identifiera faktiska och potentiella problem inom systemet. Hälsokontroller hjälper dig att lokalisera problem med säkerhet, katastrofåterställning, minne, I/O och konfiguration innan de orsakar stora prestandaproblem.

Regelbundna hälsokontroller bör inkludera:

  • Kontrollerar efter saknade index:Saknade index gör att SQL Server svarar långsamt eftersom den måste söka efter data i varje post. Men var inte för snabb med att bara lägga till saknade index; Att lägga till onödiga index kan också påverka prestandan negativt.
  • Se efter oproportionerligt höga nivåer av ad hoc-frågor:Det är inga problem att använda ad hoc-frågor ibland. Men när de används för ofta blir prestandan lidande. SQL Server återanvänder inte dessa satser, så procedurcachen blir uppblåst, vilket gör att buffertcachen rensar data. SQL Server måste då läsa data från disken (långsam) istället för från minnet.
  • Letar efter inaktuell statistik:SQL Server-frågeoptimeraren använder statistik för att beräkna den uppskattade kostnaden för operationerna. Inaktuell statistik kan göra att frågeoptimeraren väljer en suboptimal exekveringsplan.

Uppgradera till den senaste versionen av SQL Server

Den här känns lite självklar, men om du inte redan har gjort det, uppgradera till den senaste versionen av SQL Server. SQL Server 2000, 2005 och 2008 är inte längre under aktiv utveckling, och de nyare versionerna har många funktioner som definitivt kommer att öka prestandan. Dessa funktioner inkluderar den senaste versionen av SQL Server-frågeoptimeraren, nya CPU-instruktionsuppsättningar och, naturligtvis, buggfixar.


  1. Oracle DBA realtidsfrågor

  2. Matcha utbud med efterfrågan – lösningar, del 2

  3. SQLServer vs StateServer för ASP.NET Session State Performance

  4. Fel 404 hittades inte med EM 12c