Articles

SQL Server Database Performance Tuning

Posted on

U bent een ontwikkelaar, DBA, of sysadmin en zit vast met langlopende queries in SQL Server, en u moet SQL Server performance tuning doen. We leren je SQL tuning in een serie gemakkelijke, gratis tutorials:

  1. Meten hoe snel de server nu gaat.
  2. Prestatie tuning van de queries.
  3. Prestatie tuning van de indexen.
  4. Prestatie tuning van SQL Server’s instellingen.
  5. Prestatie tuning van de hardware.
  6. Ten slotte, als je nieuwe servers moet kopen, neem dan een best practices setup checklist, en test de belasting voordat je live gaat.

Laten we eens in de details van elke stap duiken.

Meten van SQL Server Performance

Als de gebruikers naar je toe komen en zeggen dat hun queries traag zijn, wil je ze niet zomaar op hun woord geloven: je wilt precies weten welke queries traag zijn, en waarom. Laten we beginnen met

  • sp_BlitzFirst® – deze gratis tool is als het ware de snelheidsmeter van SQL Server. Het laat je zien hoe snel SQL Server gaat, en welke wachttypes voorkomen dat je sneller gaat.
  • SQL Server Perfmon Tutorial – hoe je Perfmon instelt, welke SQL Server Perfmon tellers je moet volgen, en wat de indicatoren betekenen.
  • Kijk hoe Brent Servers afstemt – tijdens Microsoft Ignite 2015 nam hij verschillende SQL Server-workloads, vond de bottleneck en tweakte vervolgens verschillende instellingen voor snelle fixes.

Voordat je dingen gaat veranderen, vraag dan welke onderdelen van de server je mag veranderen. De Manager’s Guide to Tuning SQL Server geeft je een eenvoudige checklist van welke onderdelen je mag tweaken, veranderen, of volledig vervangen.

Hoe SQL Queries Optimaliseren

Als je een in-house applicatie hebt, en je mag query optimalisatie doen, dan zijn hier een paar manieren om de langstlopende queries in SQL Server te vinden, en vervolgens hoe je hun prestaties kunt verbeteren. Eerst moeten we uitzoeken welke queries we moeten optimaliseren, en hier zijn de query performance tuning tools die ik gebruik:

  • Om je langlopende queries te vinden, gebruik je het gratis script sp_BlitzCache. U hoeft van tevoren niets te installeren en het werkt op alle ondersteunde versies van SQL Server vanaf 2008. (Het werkt zelfs in de cloud.)
  • Om de langstlopende query’s op dit moment te achterhalen, voert u sp_BlitzWho uit. Het toont queries van langstlopende naar kortstlopende, en geeft je hun uitvoeringsplannen.

Je zult merken dat ik niet heb gezegd dat je langzaam lopende queries moet vangen met SQL Profiler. Profiler is geen goede SQL Server prestatie monitor: het zorgt er juist voor dat alle queries langzamer gaan lopen. Je bent veel beter af als je de plan cache gebruikt, zoals hierboven te zien is.

Als je eenmaal de dure SQL queries hebt gevonden die je moet tunen, volgen hier mijn favoriete performance tuning tips:

  • Kijk hoe Brent Queries tunet – heb je je ooit afgevraagd hoe iemand anders het doet? Kijk mee over Brent’s schouder in deze gratis SQL Server tutorial.
  • 7 dingen die ontwikkelaars moeten weten over SQL – inclusief waarom functies zelden goed presteren, waarom WITH NOLOCK niet betekent dat er geen locking is, en meer.
  • Hoe je prestatieverbeteringen kunt meten – Kendra legt uit hoe je statistieken van SSMS kunt gebruiken.
  • Hoe je query uitvoeringsplannen kunt lezen en ze kunt tunen om ze sneller te laten gaan.

How to Do Index Performance Tuning

Als je de SQL queries niet mag optimaliseren, maar ze toch moet versnellen, dan kan het nodig zijn om nonclustered indexes en covering indexes te ontwerpen. Dit kan de prestaties van een SQL query verhogen zonder

databasestructuren efficiënter te maken zodat SQL Server minder hoeft te werken, vindt u hier onze bronnen:

  • sp_BlitzIndex® – voer dit uit in uw database voor een gratis sanity check. Het toont ontbrekende indexen, ongebruikte indexen, duplicaten, heaps, en nog veel meer, en legt uit waarom ze uw performance verpesten.
  • Indexing resources – onze favoriete blog posts en video’s over het tunen van indexen.
  • SQL Server Boek Aanbevelingen – oke, de boeken zijn niet gratis, maar onze aanbevelingen wel. We kiezen de beste boeken voor beginners, gevorderden en performance tuning.
  • Tabel partitionering – deze functie lijkt een geweldige manier om grote tabellen op te splitsen, maar het komt met een aantal grote problemen.
  • Hoe indexen te tunen – en SQL Server queries sneller te maken.

Performance Tune SQL Server’s Settings

Verrassend genoeg kunnen veel van SQL Server’s standaard instellingen leiden tot slechte prestaties. Laten we eens doornemen wat u moet doen:

  1. Voer sp_Blitz® uit op de server. Het is een gratis gezondheidscheck die veel voorkomende prestatie bottlenecks opspoort.
  2. Check onze SQL Server Setup Checklist – een aantal eenvoudige configuratie aanpassingen kunnen u vanaf het begin 20-30% prestatieverhoging opleveren zonder extra geld uit te geven.
  3. Bekijk de Slechte Prestatie Checklist – Jeremiah’s 5 dingen die slechte SQL Server prestaties oplossen.
  4. Sysadmin’s Gids voor SQL Server Geheugen – waarom gebruikt sqlserver.exe niet veel geheugen? Hoe weet je of het meer nodig heeft?

Performance Tune the Hardware

Hey, soms is het gooien van hardware de snelste, makkelijkste en goedkoopste oplossing.

  • Wat is de Kleinste SQL Server die je zou moeten bouwen? – Brent legt uit waarom 96GB RAM eigenlijk niet zo veel is – vooral als je het vergelijkt met de SQL Server licentie kosten.
  • SSD RAID Load Test Results – Hoe snel zijn consumenten SSD’s precies, vooral als je ze achter een RAID controller zet?
  • Gedeelde opslag voor SQL Server – we doen veel SAN tuning, en we hebben onze favoriete bronnen verzameld.
  • Virtualisatie Best Practices – licenties, herstelbaarheid, en prestatie configuraties.
  • Virtualisatie, SANs, en Hardware voor SQL Server – een 7 uur durende online cursus die je leert hoe je dingen moet opzetten en tunen.

Building and Load Testing New SQL Servers

Wanneer je aan het plannen bent hoe groot je een server moet bouwen, begin dan met Brent’s video van Microsoft TechEd 2012, Building the Fastest SQL Servers. Hij legt de twee gemeenschappelijke toegangspatronen voor databases uit (OLTP en data warehousing) en geeft je bronnen over welke hardware je voor elk moet kiezen.

Voor data warehouses, ga naar de Microsoft Fast Track Landing Page, maar VOOR JE KLIKT, deze pagina heeft een hoop marketing spul, en je moet weten waar je naar op zoek bent. Concentreer u op de referentieconfiguraties en configuratiegidsen. Er zijn enkele leveranciers-neutrale van Microsoft, en dan zijn er leveranciers-specifieke gidsen van Dell, HP, IBM, enz. Het kan zijn dat je helemaal naar beneden moet scrollen om de leverancier-specifieke dingen te zien.

Als de server eenmaal is gebouwd, zijn hier onze favoriete bronnen voor load testing en setup:

  • How Fast is Your Storage? – Ik laat zien hoe je de gratis CrystalDiskMark tool kunt gebruiken om een snelle belastingstest te doen op solid state drives en SAN’s.
  • Hoe SAN Performance te testen met SQLIO – SQLIO is waarschijnlijk de slechtst genaamde tool in de geschiedenis: het heeft niets te maken met databases. Het is echter nog steeds erg handig om bottlenecks te testen.

Nodig SQL Server consulting? Wij zijn performance tuning consultants.

Wij zijn gespecialiseerd in het snel en betrouwbaar maken van Microsoft SQL Server.

Onze klanten zijn divers: dot-com sites, hedge funds, ziekenhuizen, software vendors, en helemaal tot aan kleine 1-2 persoons winkels. Ze hebben allemaal één ding gemeen: ze zijn gefrustreerd met hun SQL Servers, en ze hebben snelle, kosteneffectieve antwoorden nodig.

U heeft ons waarschijnlijk al zien presenteren op conferenties over de hele wereld, en misschien heeft u er zelfs iets van geleerd. U zult onze persoonlijke trainingen en trainingsvideo’s op prijs stellen.

Wilt u snellere, persoonlijke hulp? Wij bieden een SQL Server gezondheids- en prestatiecheck-up die snel tot de hoofdoorzaak van problemen doordringt en u laat zien hoe u deze kunt oplossen. Neem nu contact met ons op voor meer informatie.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *