Popis automatického ladění

Dokončeno

Automatické ladění je funkce monitorování a analýzy, která se průběžně učí o vaší úloze a identifikuje potenciální problémy a vylepšení.

Doporučení automatického ladění jsou založená na datech shromážděných z úložiště dotazů. Plány provádění se v průběhu času vyvíjejí kvůli změnám schématu, změnám indexu nebo změnám dat, která způsobují aktualizace statistiky. Tento vývoj může způsobit, že dotazy budou fungovat špatně, protože plán provádění už nesplňuje požadavky daného dotazu.

Automatické ladění navíc umožňuje shromažďování a aplikování služeb strojového učení na metriky výkonu, aby poskytovalo navrhovaná vylepšení nebo dokonce umožňovalo samoopravování.

Ať už v místním prostředí nebo v cloudu, automatické ladění umožňuje identifikovat problémy způsobené regresí plánu spouštění dotazů. Kromě toho můžete v Azure SQL Database zlepšit výkon dotazů laděním indexu. Automatické ladění služby Azure SQL Database dokáže identifikovat indexy, které by se měly přidat nebo dokonce odebrat z databáze, aby se zvýšil výkon dotazů.

Automatická oprava plánu

Pomocí dat úložiště dotazů může databázový stroj určit, 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.

Snímek obrazovky se zobrazením úložiště dotazů pro opravu plánu s nižším výkonem

V předchozím příkladu vidíte značku zaškrtnutí u plánu ID 1, což znamená, že plán byl vynucen. Jakmile je tato funkce povolená, databázový stroj automaticky vynutí jakýkoli doporučený plán provádění dotazů, když:

  • Předchozí plán měl vyšší chybovost než doporučený plán.
  • Odhadovaný zisk procesoru byl větší než 10 sekund.
  • Plán vynucení byl proveden lépe než předchozí plán.

Plán se vrátí k poslednímu známému dobrému plánu po 15 spuštění dotazu.

Když dojde k automatickému vynucení plánu, databázový stroj použije poslední známý dobrý plán a bude také nadále monitorovat výkon plánu provádění dotazů. Pokud vynucený plán neprovádí lépe než předchozí plán, bude nevynucený a vynutí kompilaci nového plánu. Pokud vynucený plán bude pokračovat v výpadku dříve chybného plánu, zůstane vynucený až do doby, kdy dojde k opětovnému kompilaci.

Automatickou opravu plánu můžete povolit prostřednictvím dotazu T-SQL, jak je znázorněno níže. Úložiště dotazů musí být povolené a musí být v režimu čtení a zápisu, aby příkaz uspěl. Pokud některé z těchto dvou kritérií nejsou splněna, příkaz ALTER selže.

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

Doporučení k automatickému ladění můžete prozkoumat prostřednictvím zobrazení dynamické správy ( DMV), sys.dm_db_tuning_recommendationskteré je dostupné v SQL Serveru 2017 nebo novějším a je k dispozici také v řešeních Azure SQL Database. Toto zobrazení dynamické správy poskytuje informace, jako jsou důvody, proč bylo doporučení zadáno, typ doporučení a stav doporučení. Pokud chcete ověřit, že je pro databázi povolené automatické ladění, zkontrolujte zobrazení sys.database_automatic_tuning_options.

Automatická správa indexů

Azure SQL Database může provádět automatické ladění indexů. V průběhu času se databáze seznámí se stávajícími úlohami a poskytne doporučení k přidávání nebo odebírání indexů, aby byl zajištěn 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, jak je znázorněno níže:

Snímek obrazovky s možnostmi automatického ladění pro Azure SQL Database

Pokud je tato možnost povolená, stránka Doporučení k výkonu identifikuje indexy, které je možné vytvořit nebo vynechat v závislosti na výkonu dotazů. Mějte na paměti, že tato funkce není dostupná pro místní databáze a je dostupná jenom pro 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

Vytváření nových indexů může spotřebovávat prostředky a načasování vytváření indexů je důležité, aby se zajistilo, že vaše úlohy nebudou mít negativní vliv.

Azure SQL Database bude monitorovat prostředky potřebné k implementaci nových indexů, aby se zabránilo snížení výkonu. Akce ladění se odloží, dokud nebudou dostupné dostupné prostředky, například pokud jsou prostředky nutné pro existující úlohy a nejsou k dispozici pro vytvoření indexu.

Monitorování zajišťuje, že provedení jakékoli akce nepoškodí výkon. Pokud dojde k vyřazení indexu a výkon dotazů výrazně sníží, nedávno vyřazený index se automaticky znovu vytvoří.