Partage via


MODIFIER LA CONFIGURATION PORTÉE DE LA BASE DE DONNÉES (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database in Microsoft Fabric

Utilisez cette commande pour activer plusieurs paramètres de configuration de base de données au niveau de la base de données individuelle .

Important

Différentes DATABASE SCOPED CONFIGURATION options sont prises en charge dans différentes versions et plateformes du moteur de base de données SQL. Cet article décrit toutes lesDATABASE SCOPED CONFIGURATION options. Les versions le cas échéant sont notées. Assurez-vous d’utiliser la syntaxe disponible dans la version du service que vous utilisez.

Les paramètres suivants sont pris en charge dans Azure SQL Database, SQL Database dans Microsoft Fabric, Azure SQL Managed Instance et DANS SQL Server, comme indiqué par la ligne S’applique à chaque paramètre de la section Arguments :

  • Effacer le cache de procédures.
  • Définissez le paramètre MAXDOP sur une valeur recommandée (1, 2, ...) pour la base de données primaire en fonction de ce qui fonctionne le mieux pour cette charge de travail particulière et définissez une valeur différente pour les bases de données de réplica secondaires utilisées par les requêtes de création de rapports. Pour obtenir des conseils sur le choix d’un MAXDOP, passez en revue configuration du serveur : degré maximal de parallélisme.
  • Définir le modèle d’estimation de la cardinalité de l’optimiseur de requête indépendant de la base de données au niveau de compatibilité.
  • Activer ou désactiver la détection de paramètres au niveau de la base de données.
  • Activer ou désactiver les correctifs d’optimisation des requêtes au niveau de la base de données.
  • Activer ou désactiver le cache d’identité au niveau de la base de données
  • Activer ou désactiver un stub de plan compilé à stocker dans le cache lorsqu’un lot est compilé pour la première fois
  • Activer ou désactiver la collecte de statistiques d’exécution pour les modules Transact-SQL compilés en mode natif.
  • Activer ou désactiver les options par défaut « online » pour les instructions DDL qui prennent en charge la syntaxe ONLINE =.
  • Activer ou désactiver les options par défaut « resumable » pour les instructions DDL qui prennent en charge la syntaxe RESUMABLE =.
  • Activez ou désactivez le traitement intelligent des requêtes dans les fonctionnalités des bases de données SQL .
  • Activer ou désactiver le forçage du plan accéléré.
  • Activez ou désactivez la fonctionnalité d’écoute automatique des tables temporaires globales.
  • Activer ou désactiver l’infrastructure de profilage de requête léger.
  • Activer ou désactiver le nouveau message d’erreur String or binary data would be truncated.
  • Active ou désactive la collection du dernier plan d’exécution actuel dans sys.dm_exec_query_plan_stats.
  • Spécifiez le nombre de minutes pendant lesquelles une opération d’index reprenable mise en pause est mise en pause avant d’être automatiquement interrompue par le moteur de base de données.
  • Activer ou désactiver l’attente des verrous en priorité basse pour la mise à jour asynchrone des statistiques.
  • Activez ou désactivez le chargement des synthèses de registre dans Stockage Blob Azure.
  • Définissez la version par défaut de l’index en texte intégral (1 ou 2).
  • Dans Azure Synapse Analytics, définit le niveau de compatibilité d’une base de données utilisateur.

Conventions de la syntaxe Transact-SQL

Syntax

Syntaxe pour SQL Server, Azure SQL Database, base de données SQL dans Microsoft Fabric et Azure SQL Managed Instance :

ALTER DATABASE SCOPED CONFIGURATION
{
    { [ FOR SECONDARY ] SET <set_options> }
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]

< set_options > ::=
{
      ACCELERATED_PLAN_FORCING = { ON | OFF }
    | ALLOW_STALE_VECTOR_INDEX = { ON | OFF }
    | ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
    | BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
    | BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | BATCH_MODE_ON_ROWSTORE = { ON | OFF }
    | CE_FEEDBACK = { ON | OFF }
    | DEFERRED_COMPILATION_TV = { ON | OFF }
    | DOP_FEEDBACK = { ON | OFF }
    | ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
    | FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | OFF }   
    | FULLTEXT_INDEX_VERSION = <version>
    | IDENTITY_CACHE = { ON | OFF }
    | INTERLEAVED_EXECUTION_TVF = { ON | OFF }
    | ISOLATE_SECURITY_POLICY_CARDINALITY  = { ON | OFF }
    | GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
    | LAST_QUERY_PLAN_STATS = { ON | OFF }
    | LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }
    | LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
    | MAXDOP = { <value> | PRIMARY }
    | MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
    | OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
    | OPTIMIZED_PLAN_FORCING = { ON | OFF }
    | OPTIMIZED_SP_EXECUTESQL = { ON | OFF }
    | OPTIONAL_PARAMETER_OPTIMIZATION = { ON | OFF }
    | PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY }
    | PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
    | PREVIEW_FEATURES = { ON | OFF }
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }
    | ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | TSQL_SCALAR_UDF_INLINING = { ON | OFF }
    | VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
    | XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
    | XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
}

Syntaxe pour Azure Synapse Analytics :

ALTER DATABASE SCOPED CONFIGURATION
{
    SET <set_options>
}
[;]

< set_options > ::=
{
    DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
}

Arguments

POUR SECONDAIRE

Spécifie les paramètres des bases de données secondaires. Toutes les bases de données secondaires doivent avoir les mêmes valeurs.

CLEAR PROCEDURE_CACHE [ plan_handle ]

Efface le cache de procédure (plan) de la base de données. Vous pouvez exécuter cette commande sur les serveurs principaux et secondaires.

Pour effacer un plan de requête unique à partir du cache du plan, spécifiez un handle de plan de requête.

S’applique à : La spécification d’un handle de plan de requête est disponible dans SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database, et Azure SQL Managed Instance.

Options définies

ACCELERATED_PLAN_FORCING = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active un mécanisme optimisé pour le forçage du plan de requête, applicable à toutes les formes de forçage de plan, comme le plan de forçage du magasin de requêtes, l’optimisation automatique ou l’indicateur de requête USE PLAN. La valeur par défaut est ON.

Note

Il n’est pas recommandé de désactiver le forçage de plan accéléré.

ALLOW_STALE_VECTOR_INDEX = { ON | OFF }

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

Actuellement, dans Azure SQL Database et SQL Database dans Microsoft Fabric, les index vectoriels rendent les tables en lecture seule. Pour permettre l’écriture de la table, utilisez la ALLOW_STALE_VECTOR_INDEX configuration à portée de données (cale de données).

ALTER DATABASE SCOPED CONFIGURATION
SET ALLOW_STALE_VECTOR_INDEX = ON;
GO

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'ALLOW_STALE_VECTOR_INDEX';

Quand ALLOW_STALE_VECTOR_INDEX = ON, l’index vectoriel n’est pas mis à jour lorsque vous insérez ou mettez à jour de nouvelles données dans la table. Pour rafraîchir l’index vectoriel, il faut le déposer et le recréer.

Note

L’option ALLOW_STALE_VECTOR_INDEX de configuration par portée de base de données n’est actuellement pas disponible dans SQL Server 2025 (17.x).

ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Si vous activez les mises à jour de statistiques asynchrones, l’activation de cette configuration entraîne la mise à jour des statistiques en arrière-plan pour attendre un Sch-M verrou sur une file d’attente de faible priorité. Cette attente évite de bloquer d’autres sessions dans des scénarios d’accès concurrentiel élevé. Pour plus d’informations, consultez AUTO_UPDATE_STATISTICS_ASYNC. La valeur par défaut est OFF.

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive les jointures adaptatives en mode batch à l’étendue de la base de données tout en conservant le niveau de compatibilité de la base de données 140 et ultérieur. La valeur par défaut est ON. Les jointures adaptatives en mode batch sont une fonctionnalité qui fait partie du traitement de requêtes intelligent introduit dans SQL Server 2017 (14.x).

Pour le niveau de compatibilité de base de données 130 ou versions antérieures, cette configuration étendue à la base de données n’a aucun effet.

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive les commentaires d’octroi de mémoire en mode batch à l’étendue de la base de données tout en conservant le niveau de compatibilité de la base de données 140 et ultérieur. La valeur par défaut est ON. La rétroaction d’allocation de mémoire en mode batch, introduite dans SQL Server 2017 (14.x), fait partie de la suite de fonctionnalités du traitement de requêtes intelligent. Pour plus d’informations, consultez Rétroaction d’allocation de mémoire.

Pour le niveau de compatibilité de base de données 130 ou versions antérieures, cette configuration étendue à la base de données n’a aucun effet.

BATCH_MODE_ON_ROWSTORE = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive le mode batch sur rowstore dans l’étendue de la base de données tout en conservant le niveau de compatibilité de la base de données 150 et ultérieur. La valeur par défaut est ON. Le mode batch sur rowstore est une fonctionnalité qui fait partie de la famille de fonctionnalités de traitement de requêtes intelligent.

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, cette configuration délimitée à la base de données n’a aucun effet.

CE_FEEDBACK = { ON | OFF }

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Les commentaires CE traitent des problèmes de régression perçus qui résultent d’hypothèses incorrectes du modèle CE lors de l’utilisation de la ce par défaut (CE120 ou version ultérieure). Les commentaires ce peuvent utiliser de manière sélective différentes hypothèses de modèle. Nécessite le Magasin des requêtes activé et en mode READ_WRITE. Pour plus d’informations, consultez Rétroaction d’évaluation de la cardinalité (CE). La valeur par défaut est ON dans le niveau de compatibilité de la base de données 160 et versions ultérieures.

DEFERRED_COMPILATION_TV = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive la compilation différée des variables de table au niveau de l’étendue de la base de données tout en conservant le niveau de compatibilité de la base de données 150 ou supérieur. La valeur par défaut est ON. La compilation différée des variables de table est une fonctionnalité qui fait partie de la famille de fonctionnalités de traitement des requêtes intelligentes .

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, cette configuration délimitée à la base de données n’a aucun effet.

DOP_FEEDBACK = { ON | OFF }

S’applique à : SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database, base de données SQL dans Microsoft Fabric, Azure SQL Managed Instance avec SQL Server 2025 ou Always-up-to-datede mise à jour de stratégie

Identifie les inefficacités du parallélisme pour les requêtes répétées, en fonction du temps écoulé et des attentes. Si l’utilisation du parallélisme est inefficace, les commentaires DOP réduisent la DOP pour l’exécution suivante de la requête, à partir de ce qui est le DOP configuré et vérifie s’il est utile. Nécessite le Magasin des requêtes activé et en mode READ_WRITE. Pour plus d’informations, consultez les commentaires du degré de parallélisme (DOP). La valeur par défaut est OFF.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Permet de sélectionner les options destinées à forcer le moteur à élever automatiquement les opérations prises en charge pour une exécution en ligne.

Cette option s’applique uniquement aux instructions DDL qui prennent en charge la syntaxe WITH (ONLINE = <syntax>). Les index XML ne sont pas affectés.

La valeur par défaut est OFF, ce qui signifie que les opérations ne sont pas élevées en ligne, sauf si elles sont spécifiées dans l’instruction. sys.database_scoped_configurations reflète la valeur actuelle de ELEVATE_ONLINE. Ces options s’appliquent uniquement aux opérations prises en charge pour les applications en ligne. Vous pouvez remplacer le paramètre par défaut en envoyant une instruction avec l’option ONLINE spécifiée.

FAIL_UNSUPPORTED

Cette valeur élève toutes les opérations DDL prises en charge pour une exécution en ligne (option ONLINE). Les opérations qui ne prennent pas en charge l’exécution en ligne échouent et lèvent une erreur.

L’ajout d’une colonne à une table est une opération en ligne dans le cas général. Dans certains scénarios, par exemple, lorsque l’ajout d’une colonne non nullable, une colonne ne peut pas être ajoutée en ligne. Dans ces cas, si FAIL_UNSUPPORTED elle est définie, l’opération échoue.

WHEN_SUPPORTED

Cette valeur élève les opérations qui prennent en charge l’option ONLINE. Les opérations qui ne prennent pas en charge en ligne sont exécutées hors connexion.

Pour plus d’informations, consultez Instructions pour les opérations d’index en ligne.

ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Permet de sélectionner des options pour forcer le moteur à élever automatiquement les opérations prises en charge pour une exécution pouvant être reprise.

Cette option s’applique uniquement aux instructions DDL qui prennent en charge la syntaxe WITH (RESUMABLE = <syntax>). Les index XML ne sont pas affectés.

La valeur par défaut est OFF, ce qui signifie que les opérations ne sont pas élevées à reprise, sauf si spécifiées dans l’instruction. sys.database_scoped_configurations reflète la valeur actuelle de ELEVATE_RESUMABLE. Ces options s’appliquent uniquement aux opérations prises en charge pour une exécution pouvant être reprise. Vous pouvez remplacer le paramètre par défaut en envoyant une instruction avec l’option RESUMABLE spécifiée.

FAIL_UNSUPPORTED

Cette valeur élève toutes les opérations DDL prises en charge vers RESUMABLE. Les opérations qui ne prennent pas en charge l’exécution pouvant être reprise échouent et lèvent une erreur.

WHEN_SUPPORTED

Cette valeur élève les opérations qui prennent en charge RESUMABLE. Les opérations qui ne prennent pas en charge la reprise sont exécutées non modifiables.

Pour plus d’informations, consultez Instructions pour les opérations d’index en ligne.

EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Contrôle si les statistiques d’exécution pour les fonctions scalaires définies par l’utilisateur (UDF) apparaissent dans la vue système sys.dm_exec_function_stats . Pour certaines charges de travail intensives qui sont lourdes de fonctions UDF scalaires, la collecte des statistiques d’exécution de fonction peut entraîner une surcharge de performances notable. Vous pouvez éviter cette surcharge en définissant la configuration OFFdélimitée à la EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS base de données sur . La valeur par défaut est ON.

FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | OFF }

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Lorsque vous résolvez les problèmes de requêtes longues avec le profilage des statistiques d’exécution de requêtes légères ou la vue DMV sys.dm_exec_query_statistics_xml , FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION SQL Server génère un fragment XML Showplan qui inclut le ParameterRuntimeValuefichier .

Important

N’activez pas l’option de configuration délimitée à la FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION base de données en continu dans un environnement de production. Activez-le uniquement à des fins de résolution des problèmes limitées dans le temps. Cette option de configuration étendue à la base de données ajoute une surcharge supplémentaire et éventuellement significative du processeur et de la mémoire, car SQL Server crée un fragment Showplan XML avec des informations sur les paramètres d’exécution du runtime, que l’infrastructure sys.dm_exec_query_statistics_xml de profil de statistiques d’exécution de requête légère ou légère soit activée ou non.

FULLTEXT_INDEX_VERSION

S’applique à : SQL Server 2025 (17.x) et versions ultérieures, Azure SQL Database, et Azure SQL Managed Instance

Définit la version indexée en texte intégral pour la création ou la reconstruction des index. Cette configuration prend effet uniquement lorsque vous émettez une CREATE FULLTEXT INDEX instruction pour de nouveaux index ou une ALTER FULLTEXT CATALOG ... REBUILD instruction pour reconstruire tous les index d’un catalogue.

En date de SQL Server 2025 (17.x), les versions disponibles sont :

Version Comments
1 Spécifie les nouveaux index et les index reconstruits qui utilisent le filtre de texte intégral et les composants wordbreaker hérités de SQL Server 2022 (16.x) et versions antérieures, pour les populations et requêtes futures. Comme ces composants ne sont plus inclus dans SQL Server 2025 (17.x) et versions ultérieures, ils doivent être copiés manuellement depuis une instance plus ancienne.
2 (valeur par défaut) Spécifie les nouveaux index et les reconstruits qui utilisent le filtre de texte intégral et les composants de briseur de mots inclus dans SQL Server 2025 (17.x), pour les populations et requêtes futures.

La FULLTEXT_INDEX_VERSION configuration contrôle également les composants en texte intégral des procédures stockées système, des vues et des fonctions suivantes :

IDENTITY_CACHE = { ON | OFF }

S’applique à : SQL Server 2017 (14.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive le cache d’identité au niveau de la base de données. La valeur par défaut est ON. La mise en cache des identités améliore les INSERT performances sur les tables avec des colonnes d’identité. Pour éviter les lacunes dans les valeurs d’une colonne d’identité lorsque le serveur redémarre de façon inattendue ou bascule sur un serveur secondaire, désactivez l’option IDENTITY_CACHE . Cette option est similaire à l’indicateur de trace existant 272, mais elle est définie au niveau de la base de données.

Vous ne pouvez définir cette option que pour le réplica principal. Pour plus d’informations, consultez Colonnes d’identité.

INTERLEAVED_EXECUTION_TVF = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive l’exécution entrelacée pour les fonctions table à plusieurs instructions au niveau de la base de données ou de l’étendue de l’instruction tout en conservant le niveau de compatibilité de la base de données 140 ou supérieur. La valeur par défaut est ON. L’exécution entrelacée est une fonctionnalité qui fait partie du traitement des requêtes adaptatives dans Azure SQL Database. Pour plus d’informations, consultez Traitement intelligent des requêtes.

Pour le niveau de compatibilité de base de données 130 ou versions antérieures, cette configuration étendue à la base de données n’a aucun effet.

Dans SQL Server 2017 (14.x) uniquement, l’option INTERLEAVED_EXECUTION_TVF avait le nom plus ancien de DISABLE_INTERLEAVED_EXECUTION_TVF.

ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Cela vous permet de contrôler si un prédicat de sécurité au niveau ligne (RLS) affecte la cardinalité du plan d’exécution de la requête utilisateur globale. La valeur par défaut est OFF. Lorsque ISOLATE_SECURITY_POLICY_CARDINALITY est ON, un prédicat RLS n’affecte pas la cardinalité d’un plan d’exécution. Prenons l’exemple d’une table contenant 1 million de lignes et d’un prédicat RLS qui limite le résultat à 10 lignes pour l’utilisateur qui envoie la requête. Avec cette configuration étendue à la base de données définie sur OFF, l’estimation de la cardinalité de ce prédicat est 10. Lorsque cette configuration étendue à la base de données est ON, l’optimisation des requêtes estime 1 million de lignes. Il est recommandé d’utiliser la valeur par défaut pour la plupart des charges de travail.

GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Définit la fonctionnalité d’écoute automatique pour les tables temporaires globales. La valeur par défaut est ON, ce qui signifie que les tables temporaires globales sont automatiquement supprimées lorsqu’elles ne sont pas utilisées par une session ou une tâche. Lorsque la valeur est définie OFF, vous pouvez uniquement supprimer explicitement des tables temporaires globales à l’aide d’une DROP TABLE instruction ou elles sont automatiquement supprimées lors du redémarrage du service.

  • Dans les bases de données uniques et les pools élastiques Azure SQL Database, définissez cette option dans les bases de données utilisateur individuelles.
  • Dans SQL Server et Azure SQL Managed Instance, définissez cette option dans tempdb. Le paramètre dans les bases de données utilisateur individuelles n’a aucun effet.

LAST_QUERY_PLAN_STATS = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Permet d’activer ou désactiver la collection des statistiques du dernier plan de requête (équivalent à un plan d’exécution réel) dans sys.dm_exec_query_plan_stats. La valeur par défaut est OFF.

LEDGER_DIGEST_STORAGE_ENDPOINT = { <chaîne d’URL de point de terminaison> | OFF }

S’applique à : SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database

Active ou désactive le chargement des synthèses de registre dans Stockage Blob Azure. Pour activer le chargement des synthèses de registre, spécifiez le point de terminaison d’un compte Stockage Blob Azure. Pour désactiver le chargement des synthèses de registre, définissez la valeur de l’option sur OFF. La valeur par défaut est OFF.

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMAIRE }

Permet de définir le modèle d’estimation de la cardinalité de l’optimiseur de requête sur SQL Server 2012 ou antérieur selon le niveau de compatibilité de la base de données. La valeur par défaut est OFF, qui définit le modèle d’estimation de cardinalité de l’optimiseur de requête en fonction du niveau de compatibilité de la base de données. Le paramètre LEGACY_CARDINALITY_ESTIMATION sur ON est équivalent à l’activation de l’indicateur de trace 9481.

  • Pour définir cette option au niveau de la requête, ajoutez l’indicateur deQUERYTRACEON requête.
  • Pour définir cette option au niveau de la requête dans SQL Server 2016 (13.x) avec Service Pack 1 et versions ultérieures, ajoutez l’indicateur de requêteUSE HINT au lieu d’utiliser l’indicateur de trace.

PRIMARY

Cette valeur est valide uniquement sur les secondaires tandis que la base de données sur le serveur principal et spécifie que le paramètre de modèle d’estimation de cardinalité de l’optimiseur de requête sur tous les secondaires est la valeur définie pour le serveur principal. Si la configuration sur le serveur principal du modèle d’estimation de cardinalité de l’optimiseur de requête change, la valeur des secondaires change en conséquence. PRIMARY est le paramètre par défaut des bases de données secondaires.

Pour plus d’informations, consultez Estimation de la cardinalité (SQL Server).

LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Vous permet d’activer ou de désactiver l’infrastructure de profilage de requête léger. L’infrastructure de profilage de requête léger (LWP) fournit les données de performances de requête plus efficacement que les mécanismes de profilage standard et est activée par défaut. La valeur par défaut est ON.

MAXDOP = {<valeur> | PRIMARY }

<valeur>

Spécifiez le degré maximal de parallélisme (MAXDOP) par défaut qui doit être utilisé pour les instructions. 0 est la valeur par défaut et indique que la configuration du serveur est utilisée à la place. Le MAXDOP à l’étendue de la base de données remplace (sauf s’il est réglé à 0) l’ensemble max degree of parallelism au niveau serveur par sp_configure. Les indicateurs de requête peuvent tout de même remplacer le paramètre MAXDOP défini au niveau de la base de données afin de configurer les requêtes qui nécessitent un paramétrage différent. Tous ces réglages sont limités par le MAXDOP défini pour le groupe de charge de travail.

Utilisez l’option MAXDOP pour limiter le nombre de processeurs à utiliser dans l’exécution du plan parallèle. SQL Server prend en compte les plans d’exécution parallèle pour les requêtes, les opérations du langage de définition de données (DDL) d’index, l’insertion parallèle, la modification de colonne en ligne, la collecte de statistiques parallèle et l’alimentation des curseurs statiques et de jeux de clés.

La limite du degré maximal de parallélisme (MAXDOP) est spécifiée par tâche. Il ne s’agit pas d’une limite par demande ou par requête. Cela signifie que lors d’une exécution parallèle d’une requête, une seule requête peut faire apparaître plusieurs tâches, qui sont attribuées à un planificateur. Pour plus d’informations, consultez le guide d’architecture thread et de tâche.

Pour définir cette option au niveau de l’instance, voir Configuration du serveur : degré maximal de parallélisme.

Dans Azure SQL Database, la configuration de l’étendue de base de données MAXDOP pour les nouvelles bases de données de pools élastiques et uniques est définie sur 8 par défaut. Pour plus d’informations et des recommandations sur la configuration optimale de MAXDOP dans Azure SQL Database, consultez Configurer MAXDOP sur Azure SQL Database.

PRIMARY

Peut uniquement être défini pour les fichiers secondaires, tandis que la base de données sur le serveur principal et indique que la configuration est celle définie pour la base de données primaire. Si la configuration de la base de données primaire est modifiée, la valeur des bases de données secondaires est modifiée en conséquence, sans que vous ayez à la définir explicitement. PRIMARY est le paramètre par défaut des bases de données secondaires.

Pour plus d’informations, consultez Degré de parallélisme.

MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }

S’applique à : SQL Server 2022 (16.x) et versions ultérieures, et Azure SQL Database

Active ou désactive la fonctionnalité de centile de commentaires d’octroi de mémoire pour toutes les exécutions de requête qui démarrent dans la base de données. La valeur par défaut est ON. Pour plus d’informations, consultez les commentaires sur l’allocation de mémoire en mode centile et de persistance.

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, cette configuration délimitée à la base de données n’a aucun effet.

MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive la persistance des commentaires d’octroi de mémoire pour toutes les exécutions de requête qui démarrent dans la base de données. La valeur par défaut est ON. Pour plus d’informations, consultez les commentaires sur l’allocation de mémoire en mode centile et de persistance.

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, cette configuration délimitée à la base de données n’a aucun effet.

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Active ou désactive le stockage d’un stub de plan compilé dans le cache lorsqu’un lot est compilé pour la première fois. La valeur par défaut est OFF. Après avoir activé la configuration OPTIMIZE_FOR_AD_HOC_WORKLOADS délimitée à la base de données pour une base de données, la base de données stocke un stub de plan compilé dans le cache lorsqu’un lot est compilé pour la première fois. Les stubs de plan utilisent moins de mémoire que le plan compilé complet. Si un lot est compilé ou réexécuté, le moteur de base de données supprime le stub du plan compilé et le remplace par un plan compilé complet.

OPTIMIZED_PLAN_FORCING = { ON | OFF }

S’applique à : SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database

Le forçage de plan optimisé réduit la surcharge de compilation pour les requêtes forcées répétées. La valeur par défaut est ON. Une fois le plan d’exécution de requête généré, des étapes de compilation spécifiques sont stockées pour être réutilisées en tant que script de relecture d’optimisation. Un script de relecture d’optimisation est stocké dans le cadre du XML compressé du plan d’exécution de requêtes dans le Magasin des requêtes, dans un attribut OptimizationReplay caché. Pour plus d’informations, consultez Forçage de plan optimisé avec le Magasin des requêtes.

OPTIMIZED_SP_EXECUTESQL = { ON | OFF }

S’applique à : SQL Server 2025 (17.x), Azure SQL Database et SQL database in Microsoft Fabric

Active ou désactive le comportement de sérialisation de compilation de sp_executesql lorsqu’un lot est compilé. La valeur par défaut est OFF. Permettre à des lots qui utilisent sp_executesql la sérialise du processus de compilation réduit l’effet des tempêtes de compilation. Une tempête de compilation est une situation où un grand nombre de requêtes sont compilées simultanément, ce qui entraîne des problèmes de performances et une contention de ressources.

Quand OPTIMIZED_SP_EXECUTESQL c’est ONle cas, la première exécution des sp_executesql compilations et insère son plan compilé dans le cache du plan. D’autres sessions abandonnent l’attente sur le verrou de compilation et réutilisent le plan une fois qu’il est disponible. Ce comportement fait sp_executesql agir comme des objets tels que des procédures stockées et des déclencheurs du point de vue de la compilation.

OPTIONAL_PARAMETER_OPTIMIZATION = { ON | OFF }

S’applique à : SQL Server 2025 (17.x), Azure SQL Database et SQL database in Microsoft Fabric

Active ou désactive la fonctionnalité d’optimisation optionnelle du plan de paramètres (OPPO ). La valeur par défaut ON démarre dans le niveau de compatibilité de la base de données 170.

Lorsqu’elle est activée, l’optimisation du plan adaptatif génère plusieurs plans d’exécution pour les requêtes qui incluent des paramètres facultatifs. Ces plans utilisent généralement des prédicats sous la forme suivante :

  • @p IS NULL AND @p1 IS NOT NULL
  • @p IS NULL OR @p1 IS NOT NULL

La fonctionnalité peut choisir un plan plus optimal au moment de l’exécution en fonction de l’état du paramètre NULL, ce qui améliore les performances des requêtes qui pourraient autrement être des performances non optimales pour ces modèles de requête.

PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

L’optimisation du plan de confidentialité des paramètres (PSP) résout le scénario dans lequel un plan mis en cache unique pour une requête paramétrable n’est pas optimal pour toutes les valeurs de paramètres entrantes possibles. Cette situation se produit avec des distributions de données nonuniformes. La valeur par défaut est ON à partir du niveau de compatibilité de la base de données 160. Pour plus d’informations, consultez Optimisation du plan de confidentialité des paramètres.

PARAMETER_SNIFFING = { ON | OFF | PRIMAIRE }

Active ou désactive la détection de paramètres. La valeur par défaut est ON. Le paramètre PARAMETER_SNIFFING sur OFF est équivalent à l’activation de l’indicateur de trace 4136.

  • Pour ce faire au niveau de la requête, consultez l’indicateur de requête OPTIMIZE FOR UNKNOWN.
  • Dans SQL Server 2016 (13.x) SP1 et versions ultérieures, pour ce faire au niveau de la requête, l’indicateur de requête USE HINT est également disponible.

PRIMARY

Cette valeur est valide uniquement sur les fichiers secondaires pendant que la base de données se trouve sur le serveur principal. Elle spécifie que la valeur de ce paramètre sur tous les fichiers secondaires est la valeur définie pour le serveur principal. Si la configuration sur le serveur principal pour l’utilisation de détection de paramètres change, la valeur des secondaires change en conséquence sans avoir à définir explicitement la valeur des fichiers secondaires. PRIMARY est le paramètre par défaut des bases de données secondaires.

Pour plus d’informations sur PARAMETER_SNIFFING, consultez « Je sens un paramètre ! ».

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

s’applique à: SQL Server 2022 (16.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

L’option PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES détermine la durée (en minutes) pendant laquelle l’index pouvant être repris est suspendu avant que le moteur de base de données l’abandonne automatiquement.

  • La valeur par défaut est définie sur un jour (1 440 minutes).
  • La durée minimale est définie sur 1 minute.
  • La durée maximale est de 71 582 minutes.
  • Lorsqu’elle est définie 0sur , une opération suspendue n’abandonne jamais automatiquement.

La valeur actuelle de cette option s’affiche dans sys.database_scoped_configurations.

PREVIEW_FEATURES = { ON | OFF }

S’applique à : SQL Server 2025 (17.x), Azure SQL Database, base de données SQL dans Microsoft Fabric

Caution

Les fonctionnalités en préversion ne sont pas recommandées pour les environnements de production.

Autorise l’utilisation des fonctionnalités en préversion. Pour en savoir plus, consultez les fonctionnalités en préversion dans SQL Server.

La valeur par défaut est OFF.

Pour obtenir un exemple d’utilisation de cette option, consultez Utilisation des fonctionnalités en préversion dans SQL Server.

QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMAIRE }

S’applique à : SQL Server 2016 (13.x) et versions ultérieures, Azure SQL Database, et Azure SQL Managed Instance

Active ou désactive les correctifs logiciels d’optimisation de requête, quel que soit le niveau de compatibilité de la base de données. La valeur par défaut est OFF, qui désactive les correctifs logiciels d’optimisation des requêtes qui ont été publiés après le niveau de compatibilité disponible le plus élevé pour une version spécifique (post-RTM). Le paramètre QUERY_OPTIMIZER_HOTFIXES sur ON est équivalent à l’activation de l’indicateur de trace 4199.

  • Pour définir cette option au niveau de la requête, ajoutez l’indicateur deQUERYTRACEON requête.
  • Pour activer cette fonctionnalité au niveau de la requête dans SQL Server 2016 (13.x) avec Service Pack 1 et versions ultérieures, ajoutez l’indicateur de requête USE HINT au lieu d’utiliser l’indicateur de trace.

Lorsque vous utilisez l’indicateur QUERYTRACEON pour activer l’optimiseur de requête par défaut de SQL Server 7.0 à SQL Server 2012 (11.x) ou les correctifs logiciels de l’optimiseur de requête, il crée une condition OR entre l’indicateur de requête et le paramètre de configuration délimité à la base de données. Si l’une ou l’autre option est activée, les configurations délimitées à la base de données s’appliquent.

PRIMARY

Cette valeur est valide uniquement sur les fichiers secondaires pendant que la base de données se trouve sur le serveur principal. Elle spécifie que la valeur de ce paramètre sur tous les fichiers secondaires est la valeur définie pour le serveur principal. Si la configuration de la base de données primaire est modifiée, la valeur des bases de données secondaires est modifiée en conséquence, sans que vous ayez à la définir explicitement. PRIMARY est le paramètre par défaut des bases de données secondaires.

Pour plus d’informations sur QUERY_OPTIMIZER_HOTFIXES, consultez le modèle de maintenance du correctif logiciel de l’optimiseur de requête SQL Server 4199.

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Activez ou désactivez les commentaires d’octroi de mémoire en mode ligne à l’étendue de la base de données tout en conservant le niveau de compatibilité de la base de données 150 ou supérieur. La valeur par défaut est ON. Les commentaires sur l’octroi de mémoire en mode ligne sont une fonctionnalité qui fait partie du traitement des requêtes intelligent introduit dans SQL Server 2017 (14.x). Le mode ligne est pris en charge dans SQL Server 2019 (15.x) et Azure SQL Database. Pour plus d’informations, consultez Rétroaction d’allocation de mémoire.

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, cette configuration délimitée à la base de données n’a aucun effet.

TSQL_SCALAR_UDF_INLINING = { ON | OFF }

S’applique à : SQL Server 2019 (15.x) et versions ultérieures, ainsi qu’à Azure SQL Database (fonctionnalité en aperçu)

Activez ou désactivez l’incorporation de fonctions UDF scalaires T-SQL dans l’étendue de la base de données tout en conservant le niveau de compatibilité de la base de données 150 ou supérieur. La valeur par défaut est ON. L’incorporation (inlining) des fonctions UDF scalaires T-SQL fait partie de la famille des fonctionnalités de traitement de requêtes intelligent.

Note

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, cette configuration délimitée à la base de données n’a aucun effet.

VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Activer ou désactiver le nouveau message d’erreur String or binary data would be truncated. La valeur par défaut est ON. SQL Server 2019 (15.x) a introduit un message d’erreur plus spécifique (2628) pour ce scénario :

String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.

Lorsque la valeur est définie sur ON sous le niveau de compatibilité de la base de données 150, les erreurs de troncation déclenchent le nouveau message d’erreur 2628 pour fournir plus de contexte et simplifier le processus de résolution des problèmes.

Lorsque la valeur est définie sur OFF sous le niveau de compatibilité de la base de données 150, les erreurs de troncation déclenchent le message d’erreur précédent 8152.

Pour le niveau de compatibilité de base de données 140 ou versions antérieures, le message d’erreur 2628 reste un message d’erreur d’inscription qui nécessite l’activation de l’indicateur de trace 460 et cette configuration délimitée à la base de données n’a aucun effet.

XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }

S’applique à : Azure SQL Database et Azure SQL Managed Instance

Active ou désactive la collecte de statistiques d’exécution au niveau du module pour les modules T-SQL compilés en mode natif dans la base de données actuelle. La valeur par défaut est OFF. Les statistiques d’exécution sont disponibles dans sys.dm_exec_procedure_stats.

Les statistiques d’exécution au niveau du module pour les modules T-SQL compilés en mode natif sont collectées si cette option est activée (ON) ou si la collecte des statistiques est activée avec sp_xtp_control_proc_exec_stats.

XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }

S’applique à : Azure SQL Database et Azure SQL Managed Instance

Active ou désactive la collecte de statistiques d’exécution au niveau de l’instruction pour les modules T-SQL compilés en mode natif dans la base de données actuelle. La valeur par défaut est OFF. Les statistiques d’exécution sont disponibles dans sys.dm_exec_query_stats et dans le magasin des requêtes.

Les statistiques d’exécution au niveau de l’instruction pour les modules T-SQL compilés en mode natif sont collectées si cette option est ONou si la collecte de statistiques est activée via sp_xtp_control_query_exec_stats.

Pour plus d’informations sur l’analyse des performances des modules Transact-SQL compilés en mode natif, consultez Surveillance des performances des procédures stockées compilées en mode natif.

DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }

S’applique uniquement à : Azure Synapse Analytics

Définit les comportements de Transact-SQL et du traitement des requêtes pour qu’ils soient compatibles avec la version spécifiée du moteur de base de données. Une fois que vous l’avez défini, lorsqu’une requête s’exécute sur cette base de données, elle utilise uniquement les fonctionnalités compatibles. À chaque niveau de compatibilité, différentes améliorations du traitement des requêtes sont prises en charge. Chaque niveau absorbe les fonctionnalités du niveau précédent. Le niveau de compatibilité d’une base de données est défini par défaut sur AUTO lors de sa création. Il s’agit du paramètre recommandé. Le niveau de compatibilité est conservé même après une les opérations d’interruption/reprise et de sauvegarde/restauration de la base de données. La valeur par défaut est AUTO.

Niveau de compatibilité Comments
AUTO Default. Le moteur Synapse Analytics met automatiquement à jour sa valeur. Elle est représentée par 0sys.database_scoped_configurations. AUTO mappe actuellement au niveau de compatibilité 30 fonctionnalité.
10 Met en œuvre les comportements de Transact-SQL et du moteur d’interrogation avant l’introduction de la prise en charge du niveau de compatibilité.
20 Premier niveau de compatibilité qui inclut les comportements contrôlés de Transact-SQL et du moteur d’interrogation. La procédure stockée système sp_describe_undeclared_parameters est prise en charge sous ce niveau.
30 Inclut les nouveaux comportements du moteur d’interrogation.
40 Inclut les nouveaux comportements du moteur d’interrogation.
50 La distribution multi-colonnes est prise en charge sous ce niveau. Pour plus d’informations, consultez CREATE TABLE, CREATE TABLE AS SELECT et CREATE MATERIALIZED VIEW AS SELECT.
9000 Niveau de compatibilité de la préversion. La documentation spécifique aux fonctionnalités appelle les fonctionnalités en préversion contrôlées sous ce niveau. Ce niveau inclut également des capacités de niveau non9000 le plus élevé.

Permissions

Nécessite ALTER ANY DATABASE SCOPED CONFIGURATION sur la base de données. Un utilisateur disposant CONTROL d’une autorisation sur une base de données peut accorder cette autorisation.

Remarks

Même si vous pouvez configurer des bases de données secondaires avec des paramètres différents de ceux de la base de données primaire, toutes les bases de données secondaires doivent utiliser la même configuration. Vous ne pouvez pas configurer des paramètres différents pour les serveurs secondaires individuels.

L’exécution de cette instruction efface le contenu du cache de procédures de la base de données actuelle, ce qui signifie que toutes les requêtes doivent être recompilées.

Pour les requêtes de noms en trois parties, les paramètres de la connexion de base de données actuelle pour la requête sont respectés, à l’exception des modules SQL (tels que les procédures, les fonctions et les déclencheurs) compilés dans un autre contexte de base de données et utilisent donc les options de la base de données dans laquelle elles résident. De même, lors de la mise à jour asynchrone des statistiques, le paramètre de la base de ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY données où résident les statistiques est respecté.

L’événement ALTER_DATABASE_SCOPED_CONFIGURATION est ajouté en tant qu’événement DDL qui peut être utilisé pour déclencher un déclencheur DDL. Il s’agit d’un enfant du ALTER_DATABASE_EVENTS groupe de déclencheurs.

Lorsque vous restaurez ou attachez une base de données, les paramètres de configuration délimités à la base de données sont transférés et restent avec la base de données.

À compter de SQL Server 2019 (15.x), dans Azure SQL Database et Azure SQL Managed Instance, certains noms d’options ont changé :

  • DISABLE_INTERLEAVED_EXECUTION_TVF est devenu INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK est devenu BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS est devenu BATCH_MODE_ADAPTIVE_JOINS

Vérifier l’état d’une option de configuration délimitée à la base de données

Pour vérifier si une configuration est activée (1) ou désactivée (0) dans une base de données, interrogez sys.database_scoped_configurations. Par exemple, pour vérifier la valeur, LEGACY_CARDINALITY_ESTIMATIONutilisez une requête comme suit :

USE <user_database>;
SELECT
    name,
    value,
    value_for_secondary
FROM sys.database_scoped_configurations
WHERE name = 'LEGACY_CARDINALITY_ESTIMATION';

Limitations

MAXDOP

Les paramètres granulaires peuvent remplacer les paramètres globaux, et le gouverneur de ressources peut limiter tous les autres paramètres MAXDOP. La logique suivante s’applique MAXDOP au paramètre :

  • L’indicateur de requête remplace sp_configure et la configuration étendue à la base de données. Si le groupe de ressources MAXDOP est défini pour le groupe de charge de travail :

    • Si l’indice de requête est réglé à zéro (0), il est remplacé par le réglage du gouverneur de ressources.

    • Si l’indice de requête n’est pas zéro (0), il est limité par le réglage du gouverneur de ressources.

  • La configuration portée de la base de données (sauf si elle est zéro) supprime le sp_configure paramètre sauf indication de requête et est limitée par le réglage du gouverneur de ressources.

  • Le réglage du gouverneur de ressources prend le dessus sur le sp_configure paradage.

Récupération géo-répliquée après sinistre (DR)

Les bases de données secondaires lisibles (groupes de disponibilité Always On, Azure SQL Database et azure SQL Managed Instance géorépliquées) utilisent la valeur secondaire en vérifiant l’état de la base de données. Même si la recompilation ne se fait pas lors du basculement, et que techniquement le nouveau primaire a des requêtes utilisant les paramètres secondaires, les paramètres entre primaire et secondaire ne varient que lorsque la charge de travail est différente. Par conséquent, les requêtes mises en cache utilisent les paramètres optimaux, tandis que les nouvelles requêtes sélectionnent les nouveaux paramètres appropriés pour eux.

DacFx

La ALTER DATABASE SCOPED CONFIGURATION fonctionnalité est disponible dans SQL Server 2016 (13.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance. Parce qu’il affecte le schéma de la base de données, les exportations du schéma (avec ou sans données) ne peuvent pas être importées dans SQL Server 2014 (12.x) et versions antérieures. Par exemple, une exportation vers une base de données DACPAC ou BACPAC à partir d’une base de données SQL Database ou SQL Server 2016 (13.x) qui utilise cette fonctionnalité ne peut pas être importée dans un serveur de bas niveau.

Metadata

La vue système sys.database_scoped_configurations fournit des informations sur les configurations à portée au sein d’une base de données. Les options de configuration à portée de base de données n’apparaissent sys.database_scoped_configurations que lorsqu’elles sont des contournements vers les paramètres par défaut à l’échelle du serveur. La vue système sys.configurations n’affiche que les paramètres à l’échelle du serveur.

Examples

Ces exemples illustrent l’utilisation de ALTER DATABASE SCOPED CONFIGURATION.

A. Accorder l’autorisation

Cet exemple accorde l’autorisation requise pour s’exécuter ALTER DATABASE SCOPED CONFIGURATION à l’utilisateur Joe.

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION TO [Joe];

B. Définir MAXDOP

Cet exemple définit MAXDOP = 1 pour une base de données primaire et MAXDOP = 4 pour la base de données secondaire dans un scénario de géoréplication.

ALTER DATABASE SCOPED CONFIGURATION
SET MAXDOP = 1;

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET MAXDOP = 4;

Cet exemple définit MAXDOP pour une base de données secondaire identique à celle qu’elle est définie pour sa base de données principale dans un scénario de géo-réplication.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET MAXDOP = PRIMARY;

C. Définir LEGACY_CARDINALITY_ESTIMATION

Cet exemple montre comment définir LEGACY_CARDINALITY_ESTIMATIONON pour une base de données secondaire dans un scénario de géoréplication.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET LEGACY_CARDINALITY_ESTIMATION = ON;

Cet exemple s’applique LEGACY_CARDINALITY_ESTIMATION à une base de données secondaire telle qu’elle se trouve sur la base de données principale dans un scénario de géo-réplication.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY;

D. Définir PARAMETER_SNIFFING

L’exemple suivant définit PARAMETER_SNIFFING la valeur pour OFF une base de données primaire dans un scénario de géoréplication.

ALTER DATABASE SCOPED CONFIGURATION
SET PARAMETER_SNIFFING = OFF;

L’exemple suivant définit PARAMETER_SNIFFING la valeur pour OFF une base de données secondaire dans un scénario de géoréplication.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = OFF;

L’exemple suivant définit PARAMETER_SNIFFING pour qu’une base de données secondaire corresponde à la base de données primaire dans un scénario de géoréplication.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = PRIMARY;

E. Définir QUERY_OPTIMIZER_HOTFIXES

Définissez QUERY_OPTIMIZER_HOTFIXES sur ON pour une base de données primaire dans un scénario de géoréplication.

ALTER DATABASE SCOPED CONFIGURATION
SET QUERY_OPTIMIZER_HOTFIXES = ON;

F. Effacer le cache des procédures

L’exemple suivant efface le cache de procédure. Vous pouvez effacer le cache de procédure uniquement pour une base de données primaire.

ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE;

G. Définir IDENTITY_CACHE

S’applique à : SQL Server 2017 (14.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

L’exemple suivant désactive le cache d’identité.

ALTER DATABASE SCOPED CONFIGURATION
SET IDENTITY_CACHE = OFF;

H. Définir OPTIMIZE_FOR_AD_HOC_WORKLOADS

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Cet exemple permet de stocker un stub de plan compilé dans le cache lorsqu’un lot est compilé pour la première fois.

ALTER DATABASE SCOPED CONFIGURATION
SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

I. Définir ELEVATE_ONLINE

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Cet exemple montre comment définir ELEVATE_ONLINE sur FAIL_UNSUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_ONLINE = FAIL_UNSUPPORTED;

J. Définir ELEVATE_RESUMABLE

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Cet exemple montre comment définir ELEVATE_RESUMABLE sur WHEN_SUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_RESUMABLE = WHEN_SUPPORTED;

K. Effacer un plan de requête du cache du plan

s’applique à: SQL Server 2019 (15.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance

Cet exemple efface un plan spécifique du cache de procédure :

ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

L. Définir la durée de pause

S’applique à : Azure SQL Database et Azure SQL Managed Instance

Cet exemple définit la durée de pause de l’index reprenable sur 60 minutes.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60;

M. Activer et désactiver le chargement des synthèses de registre

S’applique à : SQL Server 2022 (16.x) et versions ultérieures

Cet exemple active le chargement des synthèses de registre sur un compte Stockage Azure.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'https://mystorage.blob.core.windows.net';

Cet exemple désactive le chargement des synthèses de registre.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = OFF;

N. Activer les fonctionnalités d’évaluation

Activez la possibilité d’utiliser des fonctionnalités en préversion.

ALTER DATABASE SCOPED CONFIGURATION
SET PREVIEW_FEATURES = ON;

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'PREVIEW_FEATURES';

O. Autoriser l’index vectoriel à rendre obsolète

Dans l’état actuel de la préversion d’Azure SQL Database et de la base de données SQL Fabric, les index vectoriels rendent les tables en lecture seule. Pour rendre la table accessible en écriture, activez la configuration étendue à la base de données suivante :

ALTER DATABASE SCOPED CONFIGURATION
SET ALLOW_STALE_VECTOR_INDEX = ON;

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'ALLOW_STALE_VECTOR_INDEX';

Quand ALLOW_STALE_VECTOR_INDEX = ON, l’index vectoriel n’est pas mis à jour lorsque vous insérez ou mettez à jour de nouvelles données dans la table. Pour rafraîchir l’index vectoriel, il faut le déposer et le recréer.

Cette option de configuration n’est actuellement pas disponible dans SQL Server 2025 (17.x).