Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2022 (16.x) a novější verze
databáze SQL Azure SQL Database
Azure SQL Managed Instance
v Microsoft Fabric
Změní konfiguraci součásti automatické opravy plánu (APC) funkce automatického ladění. Možnosti konfigurace platí pro danou
Mezi tyto možnosti patří možnost povolit povolení nebo přeskočení query_id
pro posouzení APC nebo nakonfigurovat APC tak, aby na tento konkrétní dotaz použila další rozšířenou regresi plánu na základě času. Možnosti konfigurace se vzájemně nevylučují.
Syntaxe
Syntaxe pro SQL Server 2022 (16.x), Spravovaná instance Azure SQL:
sp_configure_automatic_tuning
[ @option = ] 'FORCE_LAST_GOOD_PLAN'
, [ @type = ] 'type'
[ , [ @type_value = ] N'type_value' ]
, [ @option_value = ] { 'ON' | 'OFF' }
Syntaxe pro Azure SQL Database, databázi SQL v Microsoft Fabric:
sp_configure_automatic_tuning
[ @option = ] { 'FORCE_LAST_GOOD_PLAN' | 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK' }
, [ @type = ] 'type'
[ , [ @type_value = ] N'type_value' ]
, [ @option_value = ] { 'ON' | 'OFF' }
Argumenty
Důležité
Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.
[ @option = ] Možnost'
Určuje název možnosti konfigurace, která se má vyvolat. @option je varchar(60), bez výchozího nastavení a může to být jedna z těchto hodnot.
Hodnota | Popis |
---|---|
FORCE_LAST_GOOD_PLAN |
Umožňuje APC identifikovat regrese výběru plánu provádění a automaticky opravit problém vynucením posledního známého dobrého plánu zaznamenaného v úložišti dotazů. Viz Co je regrese výběru plánu provádění? |
FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK |
platí pouze pro: azure SQL Database a databáze SQL v Microsoft Fabric. Dává APC pokyn, aby použil další kontrolu regrese plánu na základě času, která nastane pět minut po zjištění změny plánu. Tato kontrola umožňuje APC zabránit předsudkům v kontrolách regrese dotazů, které se provádějí rychle. S touto možností APC bere v úvahu provádění dotazů, které můžou běžet déle nebo jsou náchylné k načasování kvůli změně plánu. |
[ @type = ] 'typ'
Typ objektu, na který se konfigurace vztahuje.
@type je varchar(60) bez výchozího nastavení. Možná hodnota je QUERY
.
[ @type_value = ] N'type_value'
ID dotazu z úložiště dotazů, na které by se měla konfigurace použít. @type_value sysname bez výchozích hodnot.
[ @option_value = ] 'option_value'
Požadovaný stav nastavení konfigurace.
@option_valuevarchar(60) bez výchozích hodnot. Možné hodnoty jsou ON
nebo OFF
. U možnosti FORCE_LAST_GOOD_PLAN
nastavení hodnoty na OFF
způsobí, že APC ignoruje query_id
v úložišti dotazů, aby systém monitoroval regrese plánu dotazů.
Návratové hodnoty kódu
0
(úspěch) nebo 1
(selhání).
Kontrola aktuálních hodnot konfigurace
Můžete také zkontrolovat, které možnosti konfigurace jsou nastaveny, zobrazením výstupu zobrazení sys.database_automatic_tuning_configurations katalogu. Změny zobrazení katalogu se také zapisují do protokolu chyb SQL Serveru.
Dovolení
Vyžaduje oprávnění ALTER DATABASE
.
Poznámky
Pro SQL Server 2022 (16.x) CU 4 a novější verze lze chování možnosti konfigurace FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK
použít pro celou instanci SQL Serveru s globálním příznakem trasování 12656. Všechny dotazy, které mají nárok na zachytávání úložiště dotazů, mají použitou další logiku kontroly regrese na základě času.
Příklady
A. Konfigurace možnosti automatického ladění (vynucení posledního dobrého plánu) pro ignorování konkrétního dotazu
Následující příklad ukazuje, jak nakonfigurovat automatické ladění tak, aby ignoroval dotaz, pokud má nárok na automatické vynucení plánu. Tento příklad používá hodnotu 422
jako query_id
, která byla vybrána z úložiště dotazů.
EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN', 'QUERY', 422, 'OFF';
B. Konfigurace možnosti automatického ladění (vynucení posledního dobrého plánu) pro ignorování konkrétního dotazu pomocí pojmenovaných parametrů
V tomto příkladu vidíme všechny query_id
výsledky, které jsou součástí všech aktualizačních příkazů kurzoru, které jsou vynuceny funkcí APC.
SELECT qry.query_id,
pl.plan_forcing_type_desc,
pl.is_forced_plan,
pl.plan_id
FROM sys.query_store_plan AS pl
INNER JOIN sys.query_store_query AS qry
ON qry.query_id = pl.query_id
WHERE pl.query_plan LIKE '%StatementType="UPDATE CURSOR"%'
AND pl.is_forced_plan > 0
AND pl.plan_forcing_type = 2;
Na základě výsledků předchozího dotazu je query_id
s hodnotou 42
dotaz, který by měl APC ignorovat. Pojmenovanou verzi syntaxe parametru můžeme použít pro sp_configure_automatic_tuning
následujícím způsobem.
EXECUTE sys.sp_configure_automatic_tuning
@option = 'FORCE_LAST_GOOD_PLAN',
@type = 'QUERY',
@type_value = 42,
@option_value = 'OFF';
Zkontrolujte, jestli je použité nastavení.
SELECT *
FROM sys.database_automatic_tuning_configurations;
C. Konfigurace automatického ladění (vynucení posledního dobrého plánu) pro použití rozšířené kontroly regrese plánu na základě času na konkrétní dotaz
platí pro: Azure SQL Database, databáze SQL v Microsoft Fabric:
APC používá kontrolu regrese plánu na základě času, která nastane pět minut po zjištění změny plánu. Tato kontrola umožňuje APC zabránit předsudkům v kontrolách regrese dotazů, které se provádějí rychle. APC bere v úvahu provádění dotazů, které můžou běžet déle nebo jsou náchylné k časovým limitům kvůli změně plánu.
Následující příklad ukazuje, jak nakonfigurovat automatické ladění tak, aby na dotaz použila rozšířenou logiku kontroly, pokud má nárok na automatické vynucení plánu. Tento příklad používá hodnotu 442
jako query_id
, která byla vybrána z úložiště dotazů.
EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK', 'QUERY', 442, 'ON';
Související obsah
- automatické ladění
- možnosti ALTER DATABASE SET (Transact-SQL)
-
sys.database_query_store_options (Transact-SQL) -
sys.dm_db_tuning_recommendations (Transact-SQL) - sys.database_automatic_tuning_mode
-
sys.database_automatic_tuning_configurations (Transact-SQL)