Partage via


sp_configure_automatic_tuning (Transact-SQL)

S’applique à : SQL Server 2022 (16.x) et versions ultérieures d’Azure SQL Database Azure SQLManaged InstanceSQL Database dans Microsoft Fabric

Modifie la configuration du composant de correction de plan automatique (APC) de la fonctionnalité de réglage automatique. Les options de configuration s’appliquent à une donnée query_id qui peut être obtenue à partir de l’Magasin des requêtes.

Ces options incluent la possibilité d’autoriser ou d’ignorer une query_id considération d’APC, ou de configurer APC pour appliquer une vérification supplémentaire de régression de plan basée sur le temps à cette requête spécifique. Les options de configuration ne s’excluent pas mutuellement.

Conventions de la syntaxe Transact-SQL

Syntaxe

Syntaxe pour SQL Server 2022 (16.x), Azure SQL Managed Instance :

sp_configure_automatic_tuning
    [ @option = ] 'FORCE_LAST_GOOD_PLAN'
    , [ @type = ] 'type'
    [ , [ @type_value = ] N'type_value' ]
    , [ @option_value = ] { 'ON' | 'OFF' }

Syntaxe pour Azure SQL Database, base de données SQL dans 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' }

Les arguments

Important

Les arguments des procédures stockées étendues doivent être entrés dans l’ordre spécifique, comme décrit dans la section syntaxe. Si les paramètres sont entrés hors ordre, un message d’erreur se produit.

[ @option = ] 'option'

Spécifie le nom de l’option de configuration à appeler. @option est varchar(60), sans valeur par défaut et peut être l’une de ces valeurs.

Valeur Descriptif
FORCE_LAST_GOOD_PLAN Permet à APC d’identifier les régressions de choix de plan d’exécution et de résoudre automatiquement le problème en forçant le dernier bon plan connu tel qu’enregistré dans le Magasin des requêtes. Voir Qu’est-ce que la régression de choix de plan d’exécution ?
FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK S’applique uniquement à : Azure SQL Database et base de données SQL dans Microsoft Fabric. Indique à APC d’utiliser une vérification de régression de plan basée sur le temps supplémentaire, qui se produit cinq minutes après la détection d’un changement de plan. Cette vérification permet à APC d’éviter de biaiser ses vérifications de régression pour les requêtes qui s’exécutent rapidement. Avec cette option, APC prend en compte les exécutions de requêtes qui peuvent s’exécuter plus longtemps ou sont sujettes à un délai d’attente en raison d’une modification de plan.

@type [ = ] 'type'

Type d’objet auquel la configuration s’applique. @type est varchar(60) sans valeur par défaut. La valeur possible est QUERY.

[ @type_value = ] N’type_value'

ID de requête de Magasin des requêtes auquel la configuration doit être appliquée. @type_value est sysname sans valeur par défaut.

[ @option_value = ] 'option_value'

État souhaité du paramètre de configuration. @option_value est varchar(60) sans valeur par défaut. Les valeurs possibles sont ON ou OFF. Pour l’option FORCE_LAST_GOOD_PLAN, la définition de la valeur sur OFF entraîne l’ignorer d’un query_id dans le Magasin des requêtes de l’analyse du système pour les régressions de plan de requête.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Vérifier les valeurs de configuration actuelles

Vous pouvez également vérifier quelles options de configuration sont définies en affichant la sortie de l’affichage catalogue sys.database_automatic_tuning_configurations . Les modifications apportées à l’affichage catalogue sont également écrites dans le journal des erreurs SQL Server.

autorisations

Nécessite l’autorisation ALTER DATABASE.

Notes

Pour SQL Server 2022 (16.x) CU 4 et versions ultérieures, le comportement de l’option de configuration peut être appliqué à l’ensemble de l’instance FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK SQL Server avec l’indicateur de trace global 12656. Toutes les requêtes éligibles pour Magasin des requêtes capture ont la logique de vérification de régression basée sur le temps supplémentaire appliquée.

Exemples

R. Configurer l’optimisation automatique (option Forcer le dernier bon plan) pour ignorer une requête spécifique

L’exemple suivant montre comment configurer le réglage automatique pour ignorer une requête s’il est éligible au forçage de plan automatique. Cet exemple utilise une valeur correspondant 422 à celle query_id sélectionnée à partir de l’Magasin des requêtes.

EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN', 'QUERY', 422, 'OFF';

B. Configurer l’optimisation automatique (option Forcer le dernier bon plan) pour ignorer une requête spécifique à l’aide de paramètres nommés

Dans cet exemple, nous pouvons voir tous les query_id résultats qui font partie des instructions de curseur de mise à jour, qui sont forcées par la fonctionnalité 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;

En fonction des résultats de la requête précédente, la query_id valeur d’une 42 requête doit être ignorée par APC. Nous pouvons utiliser la version de paramètre nommée de la syntaxe comme sp_configure_automatic_tuning suit.

EXECUTE sys.sp_configure_automatic_tuning
    @option = 'FORCE_LAST_GOOD_PLAN',
    @type = 'QUERY',
    @type_value = 42,
    @option_value = 'OFF';

Vérifiez si le paramètre est appliqué.

SELECT *
FROM sys.database_automatic_tuning_configurations;

Chapitre C. Configurer l’optimisation automatique (option Forcer le dernier bon plan) pour appliquer une vérification de régression de plan basée sur le temps prolongée à une requête spécifique

S’applique à : Azure SQL Database, base de données SQL dans Microsoft Fabric :

APC utilise une vérification de régression de plan basée sur le temps, qui se produit cinq minutes après la détection d’une modification de plan. Cette vérification permet à APC d’éviter de biaiser ses vérifications de régression pour les requêtes qui s’exécutent rapidement. L’APC prend en compte les exécutions de requêtes qui peuvent s’exécuter plus longtemps ou sont sujettes à un délai d’attente en raison d’une modification de plan.

L’exemple suivant montre comment configurer le réglage automatique pour appliquer sa logique de vérification étendue à une requête s’il est éligible au forçage de plan automatique. Cet exemple utilise une valeur correspondant 442 à celle query_id sélectionnée à partir de la Magasin des requêtes.

EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK', 'QUERY', 442, 'ON';