De bästa sätten att förbättra SQL Query Performance

Grunden för en relationsdatabas består av de SQL -frågor du skriver. Med dem kan du extrahera data och leverera den till slutanvändare i farten.

Naturligtvis skapas inte alla frågor lika, och det är möjligt att förbättra hur de fungerar genom tweaks och tekniker. Här är bara några av de bästa metoderna för att öka prestandan för SQL -frågor.

Så här övervakar du SQL Server -prestanda

Innan du kan komma in i det nitty-gritty att förbättra frågeprestanda, måste du ha en överblick över hur väl optimerad din databas är som helhet.

Det finns många olika övervakningslösningar tillgängliga, inklusive de som har en SQL -serverfrågeplansverktyg som ger dig kraft när det gäller att katalysera frågor i synnerhet.

Alla möjliga faktorer kan påverka serverns prestanda, och olika problem kan ligga bakom brister och ineffektivitet. Att kontrollera saker som väntestatistik, samt att leta efter blockering och blockering, kommer att ge dig ett bra ställe.

Anledningen till att använda övervakningslösningar från tredje part är att de kan automatisera vanliga istrativa uppgifter. Så i stället för att behöva utrota ofullkomliga frågor manuellt kan du låta programvaran göra detta åt dig, med anningsbara varningar som tar bekvämligheten ännu längre.

Optimera dina index

Ett av de enklaste sätten att förbättra SQL -frågans prestanda är att se till att dina index är korrekt optimerade. Detta innebär att defragmentera dem regelbundet så att de inte blir oroliga och effektivt kan hämta rätt information.

Indexfragmentering är en del av hur SQL -databaser fungerar, så det är inget du helt kan förhindra. Det finns dock några saker att tänka på som kan förändra hur du använder index i första hand.

Till exempel, om en tabell innehåller en relativt liten mängd data, kan ett index vara överflödigt och kan faktiskt skada prestanda snarare än att förbättra det.

En annan aspekt av indexoptimering som är relevant ur ett prestationsperspektiv är det faktum att när du bygger om index måste du vara medveten om hur du planerar denna process.

Att planera för att det ska inträffa när databasen sannolikt kommer att genomgå betydande användning är uppenbarligen inte meningsfullt, så planera istället dina indexunderhållsuppgifter för att ske under lågtider.

Det finns en mängd andra strategier att ta ombord när du arbetar med din indexering, men att få de grundläggande grunderna för optimering och underhåll ner pat kommer att fungera till din fördel på lång sikt.

Övervaka SQL Server TempDB

TempDB är ungefär som att indexera genom att det är en av hörnstenarna i hur SQL Server fungerar, och utan det kan du möta alla möjliga komplikationer när det gäller dataintegritet och tillförlitlighet.

TempDB är dock långt ifrån immun när det gäller att orsaka SQL -frågeprestanda snafus. Kort sagt är det platsen där övergående data lagras, och så används den av alla processer som är aktiva över hela serverinstanser.

Som namnet antyder ska TempDB endast lagra information tillfälligt innan den kastas när den inte längre behövs av en process, affärsappeller användare.

Dessutom, även om du har mer än en serverinstans som körs, kommer alla dessa att dela samma TempDB -tilldelning, vilket innebär att det är en viktig sårbarhetspunkt när det gäller prestanda.

En av de viktigaste sakerna att tänka på när man övervakar TempDB är mängden lagringsutrymme den använder.

Om det fylls på eftersom transaktioner inte har slutförts ordentligt eller om tillfälligt lagrade data inte har tagits bort, kan ett helt SQL -ekosystem stanna.

Att använda övervakningsverktyg ger dig förstås inblick i eb och flöden av TempDB över tid, och du kan använda dessa för att identifiera problem och snusa ut dem så snart som möjligt.

Övervakning av systemresurser

Förutom att hålla koll på hur aspekter av databasprogramvaran fungerar från ögonblick till ögonblick är det också klokt att titta på hur serverns hårdvaruresurser används.

Detta kan ytterligare begränsa potentiella smärtpunkter när du felsöker tröga sökresultat.

Till exempel, om vissa processer ökar U -trådar, minne, nätverksbandbredd eller I/O -tillgänglighet, kan detta tyda på ett större problem som måste åtgärdas.

Ibland kan detta åtgärdas snabbt genom att helt enkelt avsluta den problematiska processen eller starta om servern om det behövs.

Ibland krävs en mer omfattande korrigering, och detta beror mycket på själva felet.

En annan slutsats som du kan dra av att övervaka systemresurser är att själva frågorna inte är dåligt optimerade och processerna inte uppför sig fel. istället kan det vara så att din serverhårdvara inte längre är ändamålsenlig.

Övervakning av systemresurser handlar därför inte bara om att se om det finns utrymme för optimering idag, utan också om att planera framåt. När din databas växer och hårdvaran drivs vidare kan du uppskatta när uppgraderingar kommer att vara nödvändiga och ligga före kurvan.

Frågestämning

Sist men inte minst, titta på frågor för att se om tuning kommer att ge prestandahöjningar. Du kan hitta suboptimala frågor med några av de övervakningstekniker och verktyg som nämns ovan och sedan stryka bort brister baserat på dina resultat.

Helst kommer du att vara tillräckligt bekant med SQL för att upptäcka dåligt konstruerade frågor, men det finns några enkla strategier att tänka på. Var till exempel specifik med de fält du använder i samband med SELECT -satsen, istället för att få frågan att gå igenom hela tabellen för att hitta det du behöver. En längre fråga blir snabbare än en kortare.

Slutsats

Databasistratörer måste alltid vara vaksamma för SQL -frågeprestanda som inte håller standard, och att hålla sig till bästa praxis är bättre än att ta genvägar.

Genom att göra saker rätt första gången kommer du att spara mycket krångel och extra arbete längre ner på linjen, så det är bättre för alla inblandade.