Monitorování výkonu databáze

Dokončeno

Hlavní část technik řešení potíží, které byste použili k řešení potíží s výkonem databáze, zůstává stejná v Azure SQL.

Všechny nástroje, které se obvykle používají k monitorování a řešení potíží s SQL Serverem, platí také pro SQL Server spuštěný na virtuálním počítači Azure, včetně nástrojů, jako je Sledování výkonu. Vzhledem k povaze platformy jako služby (PaaS) ale azure SQL Database a Azure SQL Managed Instance poskytují jinou sadu nástrojů. Dále prozkoumáme konkrétní nástroje pro nabídky PaaS Azure a jejich funkce.

Porovnání výsledků výkonu se směrným plánem

Proces vytvoření směrného plánu obvykle začíná dobře před samotnou migrací databáze. To zahrnuje shromažďování komplexní sady měření dat, které odrážejí standardní výkon databáze v původním prostředí. Tato měření můžou zahrnovat, ale nejsou omezena na využití procesoru, dobu odezvy, rychlost transakcí a chybovost.

Tento směrný plán slouží jako referenční bod, proti kterému je možné porovnat výkon migrované databáze. Vyhodnocení nebo porovnání těchto standardních dat s metrikami výkonu migrované databáze se však provádí až po dokončení migrace.

Po migraci se monitoruje a měří výkon nového databázového prostředí. Tyto metriky po migraci se pak porovnávají se směrným plánem před migrací a identifikují případné nesrovnalosti nebo problémy s výkonem. Toto porovnání pomáhá pochopit, jestli migrace měla nepříznivý vliv na výkon databáze nebo jestli existují oblasti, které vyžadují optimalizaci výkonu.

Automatické ladění

Automatické ladění je funkce, která se průběžně učí z vaší úlohy, identifikuje potenciální problémy a vylepšení a nabízí doporučení na základě dat úložiště dotazů. Přizpůsobuje se změnám plánů provádění způsobených úpravami schématu nebo indexu nebo aktualizacemi dat.

Doporučení pro ladění můžete použít buď ručně pomocí webu Azure Portal, nebo můžete nechat automatické ladění doporučení samostatně použít. Ve službě Azure SQL Database může také zvýšit výkon dotazů laděním indexů.

Automatická oprava plánu

Pomocí úložiště dotazů může databázový stroj zjistit, kdy se plány spouštění dotazů regresí výkonu. I když můžete ručně identifikovat regresní plán prostřednictvím uživatelského rozhraní, úložiště dotazů také poskytuje možnost automaticky vás upozornit.

Screenshot of the Query Store view for regressed plan correction.

V tomto příkladu se vedle ID plánu 1 zobrazí značka zaškrtnutí, která označuje, že plán je vynucený.

Jakmile povolíte automatické ladění, databázový stroj automaticky vynutí jakýkoli navrhovaný plán provádění dotazů za následujících podmínek:

  • Míra chyb předchozího plánu překračuje hodnotu doporučeného plánu.
  • Odhadovaný zisk procesoru překračuje 10 sekund.
  • Vynucený plán překoná předchozí plán.

Když dojde k automatickému vynucení plánu, databázový stroj použije poslední dobrý plán a monitoruje jeho výkon. Pokud vynucený plán neprovádí lépe než předchozí plán, je nevynucovaný a zkompiluje se nový plán. Pokud předchozí plán zpochybní, zůstane vynucený, dokud se nekompiluje.

Pomocí následujícího dotazu T-SQL povolte automatickou opravu plánu.

ALTER DATABASE [WideWorldImporters] SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);

Pomocí zobrazení sys.dm_db_tuning_recommendationsdynamické správy můžete zobrazit doporučení automatického ladění. Toto zobrazení dynamické správy poskytuje podrobnosti doporučení, typy a stavy. Pokud chcete ověřit, jestli je pro databázi povolené automatické ladění, projděte si zobrazení sys.database_automatic_tuning_options.

Automatické ladění služby Azure SQL Managed Instance podporuje FORCE LAST GOOD PLANpouze .

Pokud chcete povolit oznámení pro automatické ladění, přečtěte si článek E-mailová oznámení o automatickém ladění.

Automatická správa indexů

Azure SQL Database podporuje automatické ladění indexů. To znamená, že v průběhu času má databáze možnost získat informace o existujících úlohách a poskytovat doporučení k přidávání nebo odebírání indexů, aby poskytovala lepší výkon. Stejně jako vynucení vylepšených plánů dotazů je možné databázi nakonfigurovat tak, aby umožňovala automatické vytvoření nebo odebrání indexu v závislosti na existujícím výkonu indexu.

Screenshot of Automatic tuning Options for Azure SQL Database.

Případně můžete pomocí následujícího dotazu zobrazit funkce automatického ladění povolené v databázi.

SELECT name,
    desired_state_desc,
    actual_state_desc,
    reason_desc
FROM sys.database_automatic_tuning_options

Vytvoření indexu je náročné na prostředky a jeho úspěšné vytvoření je důležité, aby se zajistilo, že vaše úlohy nebudou mít negativní vliv.

Azure SQL Database monitoruje prostředky potřebné k automatické implementaci nových indexů, aby se zabránilo snížení výkonu. Akce ladění se zpozdí, dokud nebudou například k dispozici prostředky potřebné pro existující úlohy, aby se zabránilo vytvoření indexu.

Prozkoumání nástroje Query Performance Insight

Počáteční fáze jakékoli úlohy optimalizace výkonu databáze zahrnuje určení dotazů, které jsou nejvíce náročné na prostředky. V předchozích verzích SQL Serveru to vyžadovalo rozsáhlé trasování a sadu složitých skriptů SQL, což zpracovával proces shromažďování dat.

Identifikace problematických dotazů

Azure SQL Database nabízí nástroj s názvem Query Performance Insight , který správci umožňuje rychle identitovat nákladné dotazy. Najdete ho v hlavním okně služby Azure SQL Database v části Inteligentní výkon .

Query Performance Insight ve službě Azure SQL Database nabízí tři možnosti filtrování: pro dlouhotrvající dotazy, dotazy s nejvyšším využitím prostředků (výchozí nastavení) nebo vlastní filtr. Zobrazí pět nejčastějších dotazů seřazených podle zvoleného prostředku, jako je procesor, vstupně-výstupní operace dat nebo vstupně-výstupní operace protokolu. Výběrem řádku v dolní mřížce můžete přejít k podrobnostem jednotlivých dotazů. Každý řádek je označen odlišnou barvou, která odpovídá barvě pruhového grafu.

Screenshot of Query Performance Insights dashboard from Azure portal.

Vlastní karta nabízí větší flexibilitu než ostatní možnosti. Umožňuje šití dat o výkonu na míru s několika rozevíracími nabídkami ovlivňujícími vizualizaci dat. Mezi klíčové metriky patří procesor, vstupně-výstupní operace protokolu, vstupně-výstupní operace dat a paměť, což jsou aspekty výkonu omezené úrovní služeb a výpočetními prostředky služby Azure SQL Database.

Screenshot of a custom dashboard in Query Performance Insight.

Pokud přejdeme k podrobnostem jednotlivého dotazu, uvidíme ID dotazu a samotný dotaz a také typ agregace dotazu a přidružené časové období.

Screenshot of the details of Query ID 3204 in Query Performance Insight.

I když Nástroj Query Performance Insight nezobrazuje plán provádění dotazu, můžete tento dotaz rychle identifikovat a použít informace k extrahování plánu z úložiště dotazů ve vaší databázi.

Výstrahy

Upozornění na výkon pro databáze ve službě Azure SQL Database můžete nastavit pomocí webu Azure Portal. Tato upozornění vás můžou informovat e-mailem nebo volat webhook, když určitá metrika (například velikost databáze nebo využití procesoru) dosáhne prahové hodnoty.

Proces nastavení upozornění je podobný mezi službou SQL Database a službou SQL Managed Instance. Pokud chcete nastavit upozornění na výkon pro Azure SQL Database, přejděte do části Monitorování a vyberte Výstrahy. Odtud potřebujete vytvořit nové pravidlo upozornění, definovat podmínku a vytvořit skupinu akcí.

Další informace o upozorněních pro službu Azure SQL Managed Instance najdete na webu Azure Portal v tématu Vytváření upozornění pro službu Azure SQL Managed Instance. Pokud vás zajímá Azure SQL Database, přečtěte si téma Vytváření upozornění pro Azure SQL Database a Azure Synapse Analytics pomocí webu Azure Portal.

Azure SQL Přehledy

Azure SQL Přehledy vylepšuje možnosti monitorování tím, že poskytuje interaktivní a připravené vizualizace. Můžete přizpůsobit shromažďování a frekvenci telemetrie a kombinovat data z více zdrojů do jednoho prostředí monitorování. Uchovává také sadu metrik v průběhu času, což vám umožní prozkoumat problémy s výkonem, se kterými jste se mohli setkat v minulosti.

Důležité

Doporučujeme nastavit azure SQL Přehledy až po úplné integraci migrované databáze do produkčního prostředí. Tím zabráníte nástroji zachytit hlučná data během fáze migrace a testování.

Abyste mohli začít s SQL Přehledy, potřebujete vyhrazený virtuální počítač, který monitoruje a vzdáleně shromažďuje data z vašich SQL serverů. Tento vyhrazený virtuální počítač musí mít nainstalované následující součásti:

  • Agent Azure Monitoru
  • Rozšíření Přehledy úloh

Kromě toho jsou k nastavení sql Přehledy potřeba následující komponenty.

Profil monitorování – seskupování serverů, instancí nebo databází k monitorování.

Pracovní prostor služby Log Analytics – kam se mají odesílat data monitorování SQL.

Nastavení shromažďování – shromažďování dat pro svůj profil můžete přizpůsobit. Výchozí nastavení pokrývají většinu scénářů monitorování a obvykle není nutné je měnit.

Rozšířené události

Nástroj Rozšířené události je robustní monitorovací systém, který zachycuje podrobnou serverovou a databázovou aktivitu. Filtry se dají použít, aby se snížily režijní náklady na shromažďování dat a zaměřily se na konkrétní problémy s výkonem. Všechny nabídky Azure SQL podporují rozšířené události.

I když se nastavení rozšířených událostí podobá SQL Serveru, Azure SQL Database a Azure SQL Managed Instance, tento modul se zaměřuje na jejich rozdíly, ne na výuku procesu nastavení.

Tady jsou některé klíčové rozdíly při konfiguraci rozšířených událostí ve službě Azure SQL Database:

  • Transact-SQL: Při provádění CREATE EVENT SESSION příkazu na SQL Serveru použijete klauzuli ON SERVER . Ale ve službě Azure SQL Database místo toho použijete klauzuli ON DATABASE . Klauzule ON DATABASE platí také pro ALTER EVENT SESSION DROP EVENT SESSION příkazy Transact-SQL. Azure SQL Database podporuje pouze relace v oboru databáze.

  • Relace v oboru databáze: Rozšířené události jsou založeny na modelu izolace s jedním tenantem ve službě Azure SQL Database. Relace událostí v jedné databázi nemá přístup k datům ani událostem z jiné databáze. Příkaz nelze vydat CREATE EVENT SESSION v kontextu hlavní databáze¹.

  • Úložiště: Vzhledem k tomu, že nemáte přístup k systému souborů serveru, ve kterém se nachází vaše databáze ve službě Azure SQL Database, můžete nakonfigurovat cíl účtu úložiště pro ukládání rozšířených relací událostí.