sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed Instance
Retourne l’état actuel des sémaphores de ressources utilisés pour limiter l’optimisation des requêtes simultanées.
Colonne | Type | Description |
---|---|---|
pool_id | int | ID du pool de ressources sous Resource Governor |
name | sysname | Nom de la porte de compilation (petite passerelle, passerelle moyenne, grande passerelle) |
max_count | int | Nombre maximal configuré de compilations simultanées |
active_count | int | Le nombre actif de compilations dans cette porte |
waiter_count | int | Nombre de serveurs dans cette porte |
threshold_factor | bigint | Facteur de seuil qui définit la partie mémoire maximale utilisée par l’optimisation des requêtes. Pour la petite passerelle, threshold_factor indique l’utilisation maximale de la mémoire de l’optimiseur en octets pour une requête avant qu’elle ne soit nécessaire pour obtenir un accès dans la petite passerelle. Pour la passerelle moyenne et grande, threshold_factor affiche la partie de la mémoire totale du serveur disponible pour cette porte. Il est utilisé comme diviseur lors du calcul du seuil d’utilisation de la mémoire pour la porte. |
threshold | bigint | Mémoire seuil suivant en octets. La requête est nécessaire pour accéder à cette passerelle si sa consommation de mémoire atteint ce seuil. « -1 » si la requête n’est pas nécessaire pour accéder à cette passerelle. |
is_active | bit | Indique si la requête est requise pour passer la porte actuelle ou non. |
Autorisations
SQL Server nécessite l’autorisation VIEW SERVER STATE sur le serveur.
Azure SQL Base de données nécessite l’autorisation VIEW DATABASE STATE dans la base de données.
Autorisations pour SQL Server 2022 et versions ultérieures
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Notes
SQL Server utilise une approche de passerelle hiérarchisé pour limiter le nombre de compilations simultanées autorisées. Trois passerelles sont utilisées, dont les petites, les moyennes et les grandes. Les passerelles permettent d’éviter l’épuisement des ressources de mémoire globales grâce à l’augmentation de la quantité de mémoire de compilation nécessitant des consommateurs.
Les attentes sur une passerelle entraînent un retard de compilation. En plus des retards de compilation, les demandes limitées auront une accumulation de type d’attente RESOURCE_SEMAPHORE_QUERY_COMPILE associée. Le RESOURCE_SEMAPHORE_QUERY_COMPILE type d’attente peut indiquer que les requêtes utilisent une grande quantité de mémoire pour la compilation et que la mémoire a été épuisée, ou qu’il existe une mémoire suffisante dans l’ensemble, mais les unités disponibles dans une passerelle spécifique ont été épuisées. La sortie de sys.dm_exec_query_optimizer_memory_gateways peut être utilisée pour résoudre les scénarios où la mémoire était insuffisante pour compiler un plan d’exécution de requête.
Exemples
R. Affichage des statistiques sur les sémaphores de ressources
Quelles sont les statistiques actuelles de la passerelle de mémoire de l’optimiseur pour cette instance de SQL Server ?
SELECT [pool_id], [name], [max_count], [active_count],
[waiter_count], [threshold_factor], [threshold],
[is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;
Voir aussi
Fonctions et vues de gestion dynamique (Transact-SQL)
Fonctions et vues de gestion dynamique relatives à l'exécution (Transact-SQL)
Comment utiliser la commande DBCC MEMORYSTATUS pour surveiller l’utilisation de la mémoire sur SQL Server grande requête 2005attend sur RESOURCE_SEMAPHORE_QUERY_COMPILE dans SQL Server 2014
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour