Azure SQL tuning a diagnostika
Tento článek byl napsán v roce 2016. Vývojářské technologie se neustále inovují a článek již nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.
Služby v prostředí Microsoft Azure poskytují mnoho zajímavých funkcí, se kterými se v konkurenčním prostředí nesetkáme, nebo pro jejich získání musíme vynaložit velké úsilí. Příkladem budiž řada optimalizačních a diagnostických služeb v rámci Azure SQL, které vám představím.
Sledujeme zdraví SQL databáze
Azure SQL je stejně jako řada jiných služeb v rámci resource manageru neustále monitorována a vyhodnocována jako (ne)zdravá. Signály o stavu přitom emituje resource nebo monitorovaná služba (ne však služby jiného typu). Přehled včetně podrobné historie lze nalézt v sekci Resource health.
Upozornění
Pokud se chcete vyhnout nepříjemným překvapením v podobě nedostatku prostoru nebo systémových prostředků, lze nastavit vlastní upozornění na libovolné události. Pro každou událost je možné nechat si poslat email nebo použít webhook a zkontaktovat libovolnou vlastní službu na internetu.
Performance tools
S využitím strojového učení umí Azure SQL sledovat databázové dotazy, jejich výkonnost a následně navrhovat úpravy ve formě tvorby indexů. Ve zcela automatizovaném režimu (Auto-tuning) dokáže Azure SQL:
- diagnostikovat a nalézt potenciálně chybějící indexy,
- vytvořit nové indexy na databází (téměř v reálném čase),
- vyhodnotit efektivitu vytvořených indexů,
- odstranit vytvořené indexy, které neměly pozitivní impact na výkonnost
V praxi tak umí Azure SQL kontinuálně provádět nad databází optimalizace zcela bez zásahu vývojáře. Jednotlivé návrhy na úpravy (Recommendations) je přitom možné historicky procházet (včetně těch, které byly automaticky vráceny zpět).
Query Performance Insight
Pomocí vizuálního nástroje QPI lze sledovat dotazy s největším impactem na CPU, počtem spuštění nebo dobou trvání. Data lze přitom agregovat (sum/max/avg) nad zvolenou časovou periodou (6 hodin až 1 měsíc). Vybrané dotazy s přiděleným Query ID je možné dále analyzovat a zjistit například jejich chování v čase.
Geo-Replikace
Přistupují k Vaší aplikaci uživatelé z různých regionů v rámci celého světa? Azure sleduje veškerý provoz a na základě přístupů k databázovému serveru umí navrhnout aktivaci Geo-Replikace pro vybrané regiony.
Auditing
Chcete mít dokonalý přehled o tom, jaké změny se dějí ve vybrané databázi? Funkce auditing tyto informace automaticky sesbírá a následně uloží do blob storage nebo table storage. S využitím Azure Storage Exploreru lze data poté velmi snadno exportovat do formátu CSV a dále je zpracovávat. Funkci auditing je možné aktivovat i nad celým SQL serverem (čili pro všechny databáze současně).
Znáte další zajímavé funkce v Azure SQL? Podělte se o ně v diskusi!