25 tips to Improve SQL Query Performance

každý zákazník / uživatel chce vždy rychlou odezvu na proces načítání dat. Takže musíme navrhnout dobrou databázi, která poskytuje nejlepší výkon při manipulaci s daty, což má za následek nejlepší výkon aplikace. Neexistuje však žádný přímý způsob, jak definovat nejlepší výkon, ale můžeme si vybrat několik způsobů, jak zlepšit výkon dotazu SQL, který spadá do různých kategorií, jako je vytváření indexů, použití spojení a přepsat poddotaz pro použití spojení atd.

jako vývojář víme, že jakýkoli dotaz SQL může být napsán několika způsoby, ale měli bychom dodržovat osvědčené postupy/ techniky, abychom dosáhli lepšího výkonu dotazu. Některé z nich zdůrazňuji níže:

1. Použití existuje místo IN pro kontrolu existence dat.
2. Vyhnout se * v příkazu SELECT. Zadejte název sloupců, které požadujete.
3. Zvolte vhodný datový typ. Např. pro ukládání řetězců použijte varchar místo textového datového typu. Použijte textový datový typ, kdykoli potřebujete uložit velká data (více než 8000 znaků).
4. Pokud je to možné, vyhněte se nchar a nvarchar, protože oba datové typy mají pouze dvojitou paměť jako char a varchar.
5. Vyhněte se NULL v poli s pevnou délkou. V případě požadavku NULL použijte pole variable-length (varchar), které zabírá méně místa pro NULL.
6. Vyhněte Se Klauzuli. Pokud chcete dále filtrovat výsledek agregace, je vyžadována klauzule.
7. Vytvoření clusteru a non-clusteru indexy.
8. Udržujte seskupený index malý, protože pole použitá v seskupeném indexu mohou být také použita v neklustrovaném indexu.
9. Většina selektivních sloupců by měla být umístěna zcela vlevo v klíči neklustrovaného indexu.
10. Drop nepoužité indexy.
11. Je lepší vytvořit indexy ve sloupcích, které mají místo znaků celočíselné hodnoty. Celočíselné hodnoty používají méně režie než hodnoty znaků.
12. Místo dílčích dotazů použijte spojení.
13. Pomocí výrazů WHERE omezíte velikost výsledkových tabulek vytvořených pomocí spojení.
14. Použijte TABLOCKX při vkládání do stolu a TABLOCK při slučování.
15. Použijte s (NOLOCK) při dotazování na data z libovolné tabulky.
16. Použijte SET NOCOUNT ON a použijte TRY-CATCH, abyste se vyhnuli stavu zablokování.
17. Vyhněte se Kurzorům, protože kurzor má velmi pomalý výkon.
18. Místo tabulky Temp použijte proměnnou tabulky. Použití temp tabulek vyžadovalo interakci s databází TempDb, což je časově náročný úkol.
19. Pokud je to možné, použijte unii vše místo unie.
20. Použijte název schématu před názvem objektů SQL.
21. Použijte uloženou proceduru pro často používaná data a složitější dotazy.
22. Udržujte transakci co nejmenší, protože transakce uzamkne data tabulek zpracování a může vést k zablokování.
23. Vyhněte se předponě “ sp_ “ s uživatelem definovaným uloženým názvem procedury, protože SQL server nejprve prohledá uživatelem definovanou proceduru v hlavní databázi a poté v aktuální databázi relací.
24. Vyhněte se použití nekorelovaného skalárního Sub dotazu. Použijte tento dotaz jako samostatný dotaz místo části hlavního dotazu a uložte výstup do proměnné, na kterou lze odkazovat v hlavním dotazu nebo pozdější části dávky.
25. Vyhněte se Multi-prohlášení tabulka hodnotné funkce (TVFs). Multi-prohlášení TVFs jsou dražší než inline TVFs.

Šťastné Učení!

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.