Udržování vysoce výkonného SQL Serveru je zásadní nejen pro provoz vaší organizace, ale také pro vaše zákazníky. Když vaše servery reagují pomalu – nebo nereagují vůbec – přicházíte o práci. Zde jsou tři klíčové oblasti, které je třeba pečlivě sledovat, abyste zajistili optimální výkon serveru SQL a způsoby, jak výkon zlepšit, pokud vaše metriky ukazují, že máte problém.
Indexy
Pokud vaše indexy fungují dobře, přispívají k rychlému a hladce běžícímu systému. Pokud však vaše indexy trpí některým z těchto běžných problémů, můžete zjistit, že výkon serveru SQL je negativně ovlivněn.
Metrika ke sledování:faktor plnění
Faktor vyplnění je nastavení na serveru SQL Server, které dává indexům pokyn k vyplnění každé stránky X procent. Zdá se intuitivní, že byste chtěli každou stránku vyplnit na 100 procent, ale ve skutečnosti může přeplnění stránek způsobit rozdělení stránek. Pokud správce přidá další řádek na celou stránku, nový řádek přesune přibližně polovinu existujících řádků na novou stránku a nový řádek se přidá na konec první stránky.
Rozdělení stránek může způsobit problémy s výkonem kvůli zvýšenému počtu I/O operací a potenciální fragmentaci. Příliš mnoho místa na stránce však může také snížit výkon, protože zdroje jsou zbytečně vynakládány.
Chcete-li dosáhnout nejlepších výsledků z nastavení faktoru plnění, nenastavujte hodnotu pro celý systém. Podívejte se na své indexy jednotlivě a pro každý nastavte faktor plnění na vhodnou úroveň. Například indexy, které jsou často fragmentované, potřebují jinou hodnotu faktoru plnění než indexy, které se téměř nepoužívají.
Metrika ke sledování:fragmentace
K fragmentaci indexu dochází, když uživatelé přidávají a odstraňují záznamy. Přesouvání věcí je normální součástí každodenních operací databáze, ale postupem času fragmentace ovlivňuje výkon. Fragmentace může způsobit několik problémů:
- Příliš mnoho prázdného místa na příliš mnoha stránkách zpomaluje skenování a zbytečně využívá paměť
- Nové stránky jsou přidávány mimo pořadí, takže serveru trvá déle, než najde data
Když fragmentace začne ovlivňovat výkon, budete muset spustit Rebuild nebo Reorganize a vyčistit fragmentované indexy. Spuštěním Rebuild se vytvoří nový index a odstraní se prázdné místo navíc. Reorganize uspořádá listové stránky, takže server může snáze najít data.
Vyrovnávací paměť
Když SQL Server dokáže číst stránky ve vyrovnávací paměti, bude vaše doba odezvy rychlejší. Výkon trpí, když server musí přejít na disk, aby našel stránku, protože před uložením stránky do vyrovnávací paměti a jejím čtením musí projít řadou kroků. Existuje několik metrik, které můžete sledovat a které vám pomohou udržet mezipaměť v chodu na maximální výkon.
Metrika ke sledování:očekávaná životnost stránky
Očekávaná životnost stránky (PLE) je doba, po kterou stránka zůstane ve vyrovnávací paměti, aniž by byla volána, než je odeslána zpět na disk. Zvýšení PLE zlepší výkon, ale také využívá paměť, která může být potřebná pro jiné funkce. Pokud se chystáte upravit PLE, musíte zjistit, kolik paměti můžete použít, aniž byste ovlivnili výkon někde jinde.
Metrika ke sledování:poměr zásahů do mezipaměti vyrovnávací paměti
Poměr přístupů do mezipaměti vyrovnávací paměti je procento stránek umístěných ve fondu vyrovnávací paměti oproti všem požadavkům na stránky. Poměr přístupů do mezipaměti vyrovnávací paměti by měl být vyšší než 90 pro nejlepší výkon (tj. SQL Server nemusí číst z disku). Při analýze dat poměru přístupů k mezipaměti mezipaměti buďte opatrní. Malý pokles poměru nemusí znamenat skutečný problém. Analyzujte data ve spojení s PLE, abyste zjistili, zda skutečně existuje problém s výkonem.
Optimalizace dotazů
Pomalé a nedostatečně výkonné dotazy jsou jedním z nejběžnějších problémů s výkonem serveru SQL. Existuje mnoho možných důvodů, proč vaše dotazy nefungují dobře, takže může být obtížné určit přesnou příčinu. Existuje však několik věcí, které můžete vyzkoušet na začátku svého vyšetřování a které mohou zlepšit výkon dotazů s minimálním úsilím.
Metrika ke sledování:indexové skenování
Kontrola stavu vašeho SQL Serveru by měla být pravidelnou součástí vašich povinností DBA. Když dotazy běží pomalu, strávte trochu času navíc s optimalizátorem dotazů. Jednou z důležitých věcí, kterou je třeba zkontrolovat, je, zda skenování indexu SQL Server nemá nějaké problémy, které byste měli řešit.
Dalším potenciálním zabijákem výkonu je skenování indexu, které běží častěji, než je potřeba. Skenování indexu trvá mnohem déle než hledání indexu, protože dotaz musí prohledávat každý řádek a hledat užitečná data. Nastavte optimalizátor dotazů tak, aby vyhledával indexy častěji, než je prohledával.
Dalším způsobem, jak zvýšit výkon, je přepsání problematického dotazu. Zjednodušení dotazů někdy odstraní část, která způsobuje uvíznutí dotazu. Můžete také zkusit přidat indexy pro urychlení dotazů, ale v některých případech to funguje lépe než v jiných.
Přidání indexů je dobrým řešením pro pole zapojené do vyhledávání, seskupování nebo řazení; často přístupná pole; a pole s jedinečnými hodnotami. Obecně není efektivní přidávat indexy do polí s duplicitními hodnotami, jako jsou ano/ne, nebo pro malé tabulky.
Sledování výkonu SQL Serveru je zásadní pro udržení vysoce výkonných databází. Udržení maximální rychlosti vašeho serveru SQL Server lze dosáhnout pouze pečlivou pozorností k metrikám výkonu. Přidejte metriky popsané výše do svého kontrolního seznamu údržby, abyste včas identifikovali a opravili problémy s výkonem serveru SQL.