sys.database_query_store_options (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Retourne les options Magasin des requêtes pour cette base de données.

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

Nom de la colonne Type de données Description
desired_state smallint Indique le mode d’opération souhaité de Magasin des requêtes, explicitement défini par l’utilisateur.
0 = désactivé
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) Description textuelle du mode d’opération souhaité de Magasin des requêtes :
OFF
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint Indique le mode de fonctionnement de Magasin des requêtes. En plus de la liste des états souhaités requis par l’utilisateur, l’état réel peut être un état d’erreur.
0 = désactivé
1 = READ_ONLY
2 = READ_WRITE
3 = ERREUR
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) Description textuelle du mode d’opération réel de Magasin des requêtes.
OFF
READ_ONLY
READ_WRITE
ERROR
READ_CAPTURE_SECONDARY

Il existe des situations où l’état réel est différent de l’état souhaité :
- Si la base de données est définie en mode lecture seule ou si Magasin des requêtes taille dépasse son quota configuré, Magasin des requêtes peut fonctionner en mode lecture seule même si la lecture-écriture a été spécifiée par l’utilisateur.
- Dans les scénarios extrêmes, Magasin des requêtes pouvez entrer un état ERROR en raison d’erreurs internes. Depuis SQL Server 2017 (14.x), le cas échéant, le Magasin des requêtes peut être récupéré via l’exécution de la procédure stockée sp_query_store_consistency_check dans la base de données affectée. Si l’exécution sp_query_store_consistency_check ne fonctionne pas ou si vous utilisez SQL Server 2016 (13.x), vous devez effacer les données en exécutantALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int Lorsque le desired_state_desc est READ_WRITE et que le actual_state_desc est READ_ONLY, readonly_reason retourne une carte de bits pour indiquer pourquoi le Magasin des requêtes est en mode lecture seule.

1 - la base de données est en mode lecture seule

2 - la base de données est en mode mono-utilisateur

4 - la base de données est en mode d’urgence

8 - la base de données est réplica secondaire (s’applique aux groupes de disponibilité et à la géoréplication de base de données Azure SQL). Cette valeur ne peut être observée efficacement que sur les réplicas secondaires lisibles

65536 : le Magasin des requêtes a atteint la limite de taille définie par l’optionMAX_STORAGE_SIZE_MB. Pour plus d’informations sur cette option, consultez OPTIONS ALTER DATABASE SET (Transact-SQL).

131072 : le nombre d’instructions différentes dans Magasin des requêtes a atteint la limite de mémoire interne. Envisagez de supprimer les requêtes dont vous n’avez pas besoin ou de mettre à niveau vers un niveau de service supérieur pour permettre le transfert de Magasin des requêtes en mode lecture-écriture.


262144 : la taille des éléments en mémoire qui attendent d’être conservés sur le disque a atteint la limite de mémoire interne. Magasin des requêtes sera temporairement en mode lecture seule jusqu’à ce que les éléments en mémoire soient conservés sur le disque.


524288 : la base de données a atteint la limite de taille de disque. Magasin des requêtes fait partie de la base de données utilisateur, donc s’il n’y a plus d’espace disponible pour une base de données, cela signifie que Magasin des requêtes ne peut plus croître davantage.


Pour revenir au mode d’opérations Magasin des requêtes en lecture-écriture, consultez Vérifier Magasin des requêtes collecte continue des données de requête de la section Meilleures pratiques avec le Magasin des requêtes.
current_storage_size_mb bigint Taille de Magasin des requêtes sur le disque en mégaoctets.
flush_interval_seconds bigint Période de vidage régulier des données Magasin des requêtes sur le disque en secondes. La valeur par défaut est 900 (15 min).

Modifiez à l’aide de l’instruction ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) .
interval_length_minutes bigint Intervalle d’agrégation des statistiques en minutes. Les valeurs arbitraires ne sont pas autorisées. Utilisez l’une des options suivantes : 1, 5, 10, 15, 30, 60 et 1440 minutes. La valeur par défaut est 60 minutes.
max_storage_size_mb bigint Taille de disque maximale pour le Magasin des requêtes en mégaoctets (Mo). La valeur par défaut est de 100 Mo jusqu’à SQL Server 2017 (14.x) et de 1 Go à compter de SQL Server 2019 (15.x).
Pour SQL Database édition Premium, la valeur par défaut est de 1 Go et pour SQL Database édition De base, elle est de 10 Mo.

Modifiez à l’aide de l’instruction ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) .
stale_query_threshold_days bigint Nombre de jours pendant lesquels les informations d’une requête sont conservées dans le Magasin des requêtes. La valeur par défaut est 30. Définissez sur 0 pour désactiver la stratégie de rétention.
Pour l’édition SQL Database De base, la valeur par défaut est 7 jours.

Modifiez à l’aide de l’instruction ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) .
max_plans_per_query bigint Limite le nombre maximal de plans stockés. La valeur par défaut est 200. Si la valeur maximale est atteinte, Magasin des requêtes arrête la capture de nouveaux plans pour cette requête. La définition de la valeur 0 supprime la limitation en ce qui concerne le nombre de plans capturés.

Modifiez à l’aide de l’instruction ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) .
query_capture_mode smallint Mode de capture de requête actuellement actif :

1 = ALL : toutes les requêtes sont capturées. Il s’agit de la valeur de configuration par défaut pour SQL Server (SQL Server 2016 (13.x) et versions ultérieures).

2 = AUTO : capturez les requêtes pertinentes en fonction du nombre d’exécutions et de la consommation de ressources. Il s’agit de la valeur de configuration par défaut pour SQL Database.

3 = NONE : arrêtez la capture des nouvelles requêtes. Le magasin de requêtes continuera à recueillir des statistiques de compilation et d’exécution pour les requêtes qui ont déjà été capturées. Utilisez cette configuration avec prudence, car vous risquez de manquer la capture de requêtes importantes.

4 = CUSTOM : permet un contrôle supplémentaire sur la stratégie de capture de requête à l’aide des options QUERY_CAPTURE_POLICY.
S’applique à : SQL Server 2019 (15.x) et versions ultérieures.
query_capture_mode_desc nvarchar(60) Description textuelle du mode de capture réel de Magasin des requêtes :

ALL (valeur par défaut pour SQL Server 2016 (13.x))

AUTO (par défaut pour SQL Database)

Aucune

CUSTOM
capture_policy_execution_count int Option de stratégie CUSTOM en mode de capture des requêtes. Définit le nombre d’exécutions d’une requête pendant la période d’évaluation. La valeur par défaut est 30.
S’applique à : SQL Server 2019 (15.x) et versions ultérieures.
capture_policy_total_compile_cpu_time_ms bigint Option de stratégie CUSTOM en mode de capture des requêtes. Définit le temps UC de compilation écoulé total utilisé par une requête pendant la période d’évaluation. La valeur par défaut est 1000.
S’applique à : SQL Server 2019 (15.x) et versions ultérieures.
capture_policy_total_execution_cpu_time_ms bigint Option de stratégie CUSTOM en mode de capture des requêtes. Définit le temps UC d’exécution écoulé total utilisé par une requête pendant la période d’évaluation. La valeur par défaut est 100.
S’applique à : SQL Server 2019 (15.x) et versions ultérieures.
capture_policy_stale_threshold_hours int Option de stratégie CUSTOM en mode de capture des requêtes. Définit la période d’évaluation pour déterminer si une requête doit être capturée. La valeur par défaut est de 24 heures.
S’applique à : SQL Server 2019 (15.x) et versions ultérieures.
size_based_cleanup_mode smallint Contrôle si le nettoyage est activé automatiquement quand la quantité totale de données approche de la taille maximale :

0 = OFF : le nettoyage basé sur la taille n’est pas activé automatiquement.

1 = AUTO : le nettoyage basé sur la taille est automatiquement activé lorsque la taille du disque atteint 90 % de max_storage_size_mb. Il s’agit de la valeur de configuration par défaut.

Le nettoyage basé sur la taille supprime les requêtes les moins coûteuses et les plus anciennes en premier. Elle s’arrête lorsqu’environ 80 % de max_storage_size_mb sont atteintes.
size_based_cleanup_mode_desc nvarchar(60) Description textuelle du mode de nettoyage réel basé sur la taille de Magasin des requêtes :

OFF
AUTO (par défaut)
wait_stats_capture_mode smallint Contrôle si Magasin des requêtes effectue la capture des statistiques d’attente :

0 = désactivé
1 = ON
S’applique à : SQL Server 2017 (14.x) et versions ultérieures.
wait_stats_capture_mode_desc nvarchar(60) Description textuelle du mode de capture des statistiques d’attente réel :

OFF
ON (valeur par défaut)
S’applique à : SQL Server 2017 (14.x) et versions ultérieures.
actual_state_additional_info nvarchar(8000) Actuellement inutilisé.

Autorisations

Nécessite l’autorisation VIEW DATABASE STATE.

Notes

Une actual_state_desc valeur de READ_CAPTURE_SECONDARY correspond à l’état attendu lorsque Magasin des requêtes pour les réplicas secondaires est activé. Pour plus d’informations, consultez Magasin des requêtes pour les réplicas secondaires.

Étapes suivantes