Mnoho správců databází považuje monitorování výkonu SQL Serveru za svou nejdůležitější odpovědnost. Vzhledem k tomu, že servery s nízkou výkonností mohou negativně ovlivnit nejen interní operace, ale také aplikace pro zákazníky, je sledování výkonu SQL a rychlé zmírňování problémů zásadní pro úspěch a ziskovost společnosti.
Jak se stále více organizací obrací na SQL Server, správci databází stále více hledají zdroje, které by jim pomohly implementovat solidní strategii monitorování výkonu. K dispozici je velké množství dokumentace, která správcům databází pomůže nastartovat jejich sledování výkonu SQL Serveru, ale existuje několik univerzálních otázek, na které chce téměř každý správce dat rychlou odpověď. Zde jsou odpovědi na 10 nejčastějších dotazů na sledování výkonu SQL Serveru.
Co je sledování výkonu serveru SQL?
Hlavním účelem sledování výkonu SQL Serveru je zajistit konzistentní výkon a vysokou dostupnost instancí SQL Serveru. Monitorování výkonu je dvoudílný proces a obě části jsou nezbytné pro udržení optimálního provozu systému:
-
Monitorování: Sledujte širokou škálu výkonnostních metrik s přednastavenými prahovými hodnotami, abyste identifikovali anomální chování a poskytli mechanismus pro informování DBA pomocí alarmů, které jsou specifické pro daný problém a poskytují dostatek kontextu pro zahájení diagnostického procesu.
-
Diagnostika: Pracovní postup a nástroje potřebné k určení zdroje problému s výkonem a data potřebná k nápravě okamžitého problému.
-
Analýza hlavních příčin: Postřehy, které vám umožní podívat se za symptomy a identifikovat základní problémy, které spustily problém a mohou způsobit, že se znovu objeví.
-
Analýza trendů: Podívejte se na výkon v delším časovém období. Pomocí analýzy trendů identifikujte problémy dříve, než nastanou, takže rozlišujte mezi jednorázovými a opakujícími se problémy nebo prozkoumejte hranice pracovního zatížení v průběhu času. Ten lze použít k předpovídání budoucích potřeb infrastruktury, k informování o konsolidačním úsilí nebo správné velikosti pro plánovanou migraci do cloudu.
Které nástroje pro sledování výkonu databáze jsou nejlepší?
Vzhledem k počtu databází, za které je DBA zodpovědný, je ruční monitorování a diagnostika nepraktická – možná dokonce nemožná. Naštěstí jsou nejnovější softwarová řešení pro monitorování výkonu vybavena spoustou funkcí, které umožňují spravovat monitorování výkonu, a to i ve velkém měřítku:
-
Efektivní správa alarmů: Upřednostnění poplachů znamená, že se můžete nejprve vypořádat s velkými problémy a ignorovat falešné poplachy.
-
Komplexní diagnostika: Nejlepší nástroje pro sledování výkonu vám umožní ponořit se hluboko do diagnostiky. Vědět, že existuje problém, není zdaleka tak užitečné jako vědět, jak jej opravit.
-
Rychlý čas zhodnocení: Každá instance shromažďuje stovky metrik a jejich ukládání na místě se rychle prodraží. Zvažte jedno z řešení monitorování výkonu SaaS pro úsporu nákladů a škálovatelnost.
-
Analytika: Robustní analytika je klíčovým rozdílem mezi nástroji pro sledování výkonu. Pro maximální dopad na výkon vyberte nástroj, který poskytuje rozsáhlé metriky pro pracovní vytížení, plán dotazů, hlavní příčinu alarmu a blokování.
-
Sledování historických dat: Hledejte nástroj pro sledování výkonu, který ukládá historická data. To urychlí odstraňování problémů, protože budete vědět, zda se problém opakuje a jak se problémy v průběhu času sledují.
-
Ladění a optimalizace plánu dotazů: Nástroj s vestavěnou umělou inteligencí vám umožní vyladit dotazy a optimalizovat je pro konkrétní instanci.
-
Zdravotní kontroly: Kontroly stavu monitorují vitální funkce serveru SQL Server, aby vás informovaly, že můžete mít problém – někdy ještě předtím, než problém vůbec nastane.
Pokud chcete nástroj se všemi výše uvedenými funkcemi, budete se muset podívat na jedno z cloudových řešení sledování výkonu SQL Serveru. Tyto monitorovací nástroje, které nemají obdoby ve škálovatelnosti, flexibilitě a ceně, poskytují bezpečnou platformu pro sledování výkonu, která splní všechny potřeby.
Jaký je nejlepší způsob optimalizace monitorování výkonu databáze?
Jedním z nejlepších způsobů, jak optimalizovat sledování výkonu, je automatizace. Automatizace běžných úloh – jako je monitorování místa na disku, kontrola chybových protokolů a ověřování záloh databáze – zajistí dokončení těchto úloh, což poskytne správci databází více času na práci s vyšší hodnotou.
Navíc můžete implementovat následující pro optimalizaci sledování výkonu SQL Server:
-
Mobilní monitorování: Mobilní monitorování je dostupné z vašich zařízení Android a iOS. Mobilní monitorování výkonu, které poskytuje teplotní mapy, chytré alarmy a seznamy alarmů, vám umožňuje diagnostikovat problémy a zahájit třídění odkudkoli.
-
Ladění a optimalizace dotazů: Ladění výkonu vám umožňuje vizualizovat, analyzovat a optimalizovat vaše plány SQL dotazů a provádění zvýrazněním nejnákladnějších operátorů, nabízením navrhovaných oprav problémů a přepisováním/optimalizací vašich dotazů a plánu dotazů.
-
Zdravotní kontroly: Kontroly stavu vám pomohou optimalizovat sledování výkonu určením zdravotních problémů v každé instanci SQL Serveru, včetně dlouhého čekání a I/O latence. Kontroly stavu také poskytují historická data, takže můžete sledovat problémy s výkonem v průběhu času.
Jak si mám vybrat nástroj pro monitorování serveru SQL Server?
Při rozhodování o nástroji pro sledování výkonu SQL Serveru jsou dvě hlavní úvahy.
Jaký druh nástroje hledáte?
Existují tři primární typy nástrojů pro sledování výkonu, které je třeba zvážit:
-
Vlastní/vlastní: V tomto případě mějte na paměti, že to, že něco dokážete, nemusí vždy znamenat, že byste měli. Ano, můžete sestavit vlastní nástroj pro monitorování výkonu a shromažďovat metriky pomocí PerfMon, trasování, DMV a XEvents. Nevýhody však daleko převažují nad klady této cesty. Není škálovatelný, takže s přibývajícími instancemi trpí vaše možnosti sledování výkonu. Také není možné sledovat všechny věci, které potřebujete sledovat, abyste zajistili optimální výkon SQL Serveru. Jakmile začnete shromažďovat data, musíte je někam uložit, aby byla užitečná, a to se může prodražit. Sečteno a podtrženo – je pro vás cennější trávit svůj drahocenný čas budováním a údržbou nástroje pro sledování výkonu nebo jej věnovat opravám a ladění kritických pracovních zátěží.
-
Free/open source: To je potenciálně lepší volba než vytváření vlastního řešení sledování výkonu, ale stále existují omezení. I když získáte trochu přizpůsobení, stále vám chybí rozsah pokrytí a předem nakonfigurované upozornění. Stále také budete muset poskytnout svůj vlastní prostor pro ukládání dat. Je to složitý proces vybudovat nástroj, který dokáže efektivně zachytit velké množství dat o výkonu bez dopadu na monitorovaný server, nastavit vhodné prahové hodnoty pro stovky metrik, spravovat velké objemy shromážděných dat a poté je udržovat aktuální z jedné verze serveru. SQL server na další. Zaměřte svůj čas na řešení problémů a ne na budování systémů sledování výkonu. Pokud jste závislí na komunitních aktualizacích, podpora nových verzí databázové platformy může zpozdit její vydání.
-
Komerční: Komerční nástroje pro sledování výkonu SQL nabízejí řadu funkcí a úrovní přizpůsobení a mnohé jsou překvapivě cenově dostupné. Komerční nástroje usnadňují sledování výkonu s možnostmi, jako jsou kontroly stavu, správa alarmů, diagnostika výkonu a možnosti mobilního monitorování – funkce, které nezískáte z bezplatných nástrojů ani z vlastních zabudovaných nástrojů.
Jaké jsou vaše potřeby pro vaše konkrétní prostředí?
Než si vyberete nástroj pro sledování výkonu, položte si tyto otázky, které vám pomohou určit nástroj, který vyhovuje vašim konkrétním potřebám:
-
Kolik instancí chcete sledovat?
-
Jsou umístěny nebo rozptýleny?
-
Jsou on-premise nebo v cloudu (nebo obojí)?
-
Můžete si dovolit jednorázovou platbu za infrastrukturu a licence, nebo potřebujete náklady rozložit?
-
Máte k dispozici infrastrukturu a instance databáze, které můžete věnovat monitorovacímu nástroji?
-
Máte interně čas nebo zdroje na vybudování a údržbu monitorovací infrastruktury?
-
Má tento nástroj schopnost okamžitě rozdělit pracovní zátěž na několik dimenzí, aby vám ušetřil hodiny času stráveného psaním skriptů?
-
Existuje inteligentní schopnost analyzovat data a pomoci vám identifikovat konkrétní problémy?
-
Poskytuje nástroj okamžitou diagnostiku, doporučené postupy nebo diagnostiku k příslušnému rozboru?
Jaký je nejlepší způsob monitorování stavu výkonu databáze?
Existuje několik známek, že váš SQL Server není v pořádku, včetně:
-
Obecné zpomalení zátěže
-
Časové limity připojení/dotazu
-
Nadměrné využití procesoru
-
Tlak paměti
-
Nadměrná latence čtení/zápisu I/O
-
Nadměrná velikost protokolu transakcí nebo TempDB
Pokud zaznamenáte některý z těchto příznaků, je čas nastavit kontroly stavu, aby se váš systém vrátil ke špičkovému výkonu. Některé počáteční kroky, které můžete podniknout k identifikaci příčiny problémů s výkonem, zahrnují:
-
Stanovení základní linie výkonu a měření proti ní
-
Ověřování záloh
-
Kontrola chybějících indexů
-
Určení procenta zátěže z ad hoc dotazů
Jaké jsou nejlepší metriky pro sledování výkonu serveru SQL?
Existují stovky metrik, které můžete měřit, aby vám pomohly sledovat a zlepšovat výkon, ale existuje několik výjimečných, které by měly být součástí každého plánu údržby serveru SQL Server. Zde je několik hlavních oblastí, které je třeba sledovat, a metriky, na které byste měli dávat pozor:
-
Indexy. Indexy jsou častým zdrojem problémů s výkonem, protože databáze se neustále mění. Data se přidávají a odebírají a indexy se mění a odstraňují, to vše přispívá ke špatnému výkonu. Toto jsou metriky, které je třeba sledovat:
- Faktor plnění
- I/O
- Fragmentace
-
Mezipaměť. Je důležité nakonfigurovat mezipaměť vyrovnávací paměti tak, aby optimalizovala dobu, po kterou tam stránky zůstávají, aniž by to přehánělo a zatěžovalo paměť, která je potřeba jinde. Toto jsou metriky, které je třeba sledovat:
- Očekávaná životnost stránky
- Poměr požadavků na mezipaměť vyrovnávací paměti
-
T-SQL. Namísto spouštění příkazů SQL ad hoc je SQL Server dávkuje, kompiluje je do plánu provádění a ukládá je do mezipaměti a podle potřeby příkazy znovu kompiluje. Nadměrné kompilace a opětovné kompilace mohou snížit výkon. Toto jsou metriky, které je třeba sledovat:
- Kompilace SQL
- Rekompilace SQL
-
Další metriky, které je třeba pozorně sledovat:
- Zamkne čekání a zablokované procesy
- Využití CPU
Jaké jsou běžné problémy při monitorování výkonu databáze?
Nízká místa výkonu
Problémová místa výkonu se projevují jako pomalé nebo nereagující databáze. Úzká místa může být obtížné najít, protože mohou souviset s pamětí, úložištěm nebo procesorem. Existuje však několik míst, kde byste měli nejprve hledat problémy:
- Čekací doba WRITELOG
- NESTED LOOP JOIN
- Spor o TempDB
Nízká očekávaná životnost stránky (PLE)
Nízký PLE poškozuje výkon, protože SQL Server musí chodit na disk častěji, aby našel datové soubory, což trvá mnohem déle než jejich čtení z mezipaměti.
Fragmentace
Zkontrolujte, zda vaše indexy nejsou příliš fragmentované. Výkon SQL Serveru trpí, když musí hledat data na rozházených a částečně zaplněných stránkách.
Jak mám nastavit systém sledování výkonu databáze?
Jakmile se rozhodnete pro řešení sledování výkonu SQL Serveru, je čas jej uvést do provozu. I když se možná budete chtít ponořit do všech zářných nových funkcí hned, uděláte krok zpět a přistoupíte k procesu metodicky, pomůže vám to zajistit, abyste ze svého systému dostali maximum. Zde je několik tipů pro zavedení nového nástroje pro správu výkonu:
-
Rozhodněte, které případy vyžadují vaši pozornost nejvíce
-
Projděte si předpoklady
-
Poznejte své systémové požadavky
-
Stáhněte si instalační program
-
Přidat připojení
Jaké dotazy mohu použít pro sledování výkonu serveru SQL?
Dotazy, které používáte pro sledování výkonu, se budou lišit v závislosti na metrikách, které sledujete. Detekce problémů s pamětí, hodnocení defragmentace indexu a identifikace nepřijatelných čekacích dob jsou však pravděpodobně na prvním místě kontrolního seznamu monitorování výkonu každého DBA. Dokumentace Microsoft SQL Server poskytuje podrobnosti pro řadu dotazů, které vám pomohou implementovat plán sledování výkonu:
-
Využití paměti
-
Defragmentace indexu
-
Čekací statistiky
Jaké jsou nejlepší postupy monitorování výkonu databáze?
Někteří lidé nesouhlasí s pojmem „osvědčené postupy“, ale pokud jde o monitorování výkonu SQL Serveru, nelze se dohadovat o tom, že existují určité věci, které DBA musí udělat, aby udržoval systém zdravý a uživatelé byli spokojeni.
Udělejte z údržby indexu prioritu
Zanedbání vašich indexů je spolehlivý způsob, jak generovat problémy s výkonem. Indexy jsou zdrojem běžných zabijáků výkonu, včetně fragmentace a rozdělení stránek.
Znáte svou pracovní zátěž
Je těžké vědět, kdy máte problém, pokud nevíte, jak vypadá „normální“. Udělejte si čas na to, abyste se seznámili se svou pracovní zátěží, položením otázek jako:
-
Kdy je tento případ nejrušnější?
-
Jaké aplikace používají tuto instanci?
-
Kdy byla provedena poslední záloha?
-
Má tato instance známé problémy s výkonem?
Vyberte si nástroj pro sledování výkonu, který vyhovuje vašim konkrétním potřebám
Než se zavážete k nástroji pro sledování výkonu serveru SQL Server, musíte nejprve definovat své potřeby. Jakmile pochopíte, čeho se pomocí nástroje pro sledování výkonu snažíte dosáhnout, můžete s jistotou hledat řešení s funkcemi, které splňují vaše požadavky.
Najděte a opravte slabá místa výkonu
Mezi zřejmé příznaky omezení výkonu patří používání příliš velkého množství paměti, dlouhé čekací doby, fragmentace indexu a příliš mnoho nebo příliš málo indexů. Rychlé nalezení a odstranění těchto úzkých míst je jednou z hlavních povinností DBA. Nejlepším způsobem, jak udržet výkon databáze na špičkové úrovni, je implementovat nástroj pro sledování výkonu, který vám pomůže snadno najít a odstranit úzká místa výkonu a další zdroje snížení výkonu.