sql >> Databasteknik >  >> RDS >> Sqlserver

Hur du snabbar upp din SQL-server med hjälp av databasprestandaövervakning

Att underhålla en högpresterande SQL Server är viktigt inte bara för din organisations verksamhet utan också för dina kunder. När dina servrar är långsamma att svara – eller inte svarar alls – tappar du affärer. Här är tre nyckelområden att övervaka noga för att säkerställa att din SQL Server-prestanda är optimal och sätt att förbättra prestandan om dina mätvärden visar att du har ett problem.

Index

Om dina index fungerar bra bidrar de till ett snabbt och smidigt system. Men om dina index lider av någon av dessa vanliga åkommor kan du upptäcka att din SQL Server-prestanda påverkas negativt.

Mäte att övervaka:fyllningsfaktor

Fyllningsfaktor är en inställning i SQL Server som instruerar index att fylla varje sida X procent. Det verkar intuitivt att du skulle vilja fylla varje sida till 100 procent, men i verkligheten kan överfyllning av sidor orsaka siddelningar. Om en administratör lägger till ytterligare en rad på en hel sida, flyttar den nya raden ungefär hälften av de befintliga raderna till en ny sida och den nya raden läggs till längst ned på den första sidan.

Siddelningar kan orsaka prestandaproblem på grund av det ökade antalet I/O-operationer och risken för fragmentering. Men för mycket utrymme på en sida kan också skada prestandan eftersom resurserna förbrukas i onödan.

För att få bästa resultat från dina fyllningsfaktorinställningar, ställ inte in ett systemomfattande värde. Titta på dina index individuellt och ställ in fyllningsfaktorn på en lämplig nivå för varje. Till exempel behöver index som ofta fragmenteras ett annat fyllfaktorvärde än index som nästan aldrig används.

Mäte att övervaka:fragmentering

Indexfragmentering uppstår när användare lägger till och tar bort poster. Att flytta runt saker är en normal del av en databas dagliga verksamhet, men med tiden påverkar fragmentering prestandan. Fragmentering kan orsaka ett par problem:

  • För mycket tomt utrymme på för många sidor saktar ner skanningar och använder minne i onödan
  • Nya sidor läggs till i ur funktion så det tar längre tid för servern att hitta data

När fragmentering börjar påverka prestandan måste du köra Rebuild eller Reorganize för att rensa upp de fragmenterade indexen. Om du kör Rebuild skapas ett nytt index och det extra tomma utrymmet tas bort. Omorganisera ordnar bladsidorna så att servern lättare kan hitta data.

Buffertcache

När SQL Server kan läsa sidor i buffertcache blir din svarstid snabbare. Prestanda blir lidande när servern måste gå till disk för att hitta en sida eftersom den måste gå igenom en rad steg innan den sparar sidan i buffert och sedan läser den. Det finns ett par mätvärden du kan spåra som hjälper till att hålla buffertcachen igång med högsta prestanda.

Mäte att övervaka:sidans förväntade livslängd

Sidans förväntade livslängd (PLE) är hur länge en sida stannar i buffertcachen utan att anropas innan den skickas tillbaka till disken. Att öka PLE kommer att förbättra prestandan, men det använder också minne som kan behövas för andra funktioner. Om du ska justera PLE måste du ta reda på hur mycket minne du kan använda utan att påverka prestandan någon annanstans.

Mätvärde att övervaka:buffertcacheförhållande

Buffertcacheträffförhållande är procentandelen sidor som finns i buffertpoolen jämfört med alla sidförfrågningar. Träffförhållandet för buffertcache bör vara över 90 för bästa prestanda (dvs. SQL Server behöver inte läsa från disk). Var försiktig när du analyserar dina buffertcacheträffförhållandedata. En liten minskning av förhållandet kanske inte indikerar ett verkligt problem. Analysera data i samband med PLE för att avgöra om det finns ett verkligt prestandaproblem.

Frågeoptimering

Långsamma och underpresterande frågor är ett av de vanligaste SQL Server-prestandaproblemen. Det finns många möjliga orsaker till att dina frågor inte fungerar bra, så det kan vara svårt att fastställa en exakt orsak. Men det finns några saker du kan prova tidigt i din undersökning som kan förbättra frågeprestanda med minimal ansträngning.

Mäte att övervaka:indexskanning

Att kontrollera tillståndet för din SQL Server bör vara en vanlig del av dina DBA-uppgifter. När frågorna körs långsamt, spendera lite extra tid med frågeoptimeraren. En viktig sak att kontrollera är om SQL Server index scan har några problem som du behöver åtgärda.

En annan potentiell prestandadödare är indexsökning som körs oftare än den behöver. Indexsökning tar mycket längre tid än indexsökning eftersom frågan måste skanna varje rad och leta efter användbar data. Ställ in din frågeoptimerare så att den söker efter index oftare än den skannar dem.

Att skriva om en problematisk fråga är ett annat sätt att öka prestandan. Ibland tar förenklade frågor bort den del som gör att frågan hamnar. Du kan också prova att lägga till index för att snabba på frågor, men det fungerar bättre i vissa fall än andra.

Att lägga till index är en bra lösning för fält som är involverade i sökning, gruppering eller sortering; ofta tillgängliga fält; och fält med unika värden. Det är i allmänhet inte effektivt att lägga till index på fält med dubbletter av värden som ja/nej eller för små tabeller.

Prestandaövervakning av SQL Server är avgörande för att upprätthålla högpresterande databaser. Att hålla din SQL Server igång med högsta hastighet kan endast uppnås genom noggrann uppmärksamhet på prestandamått. Lägg till mätvärdena som diskuterats ovan till din underhållschecklista för att identifiera och korrigera SQL Server-prestandaproblem tidigt.


  1. SQL Server Rebuild Index Query

  2. Varför avrundar SQL Server resultaten av att dividera två heltal?

  3. ett bättre tillvägagångssätt än att lagra mysql-lösenord i vanlig text i konfigurationsfil?

  4. Anlita SQL Server i en distribuerad XA-transaktion