Depuis SQL Server 2005, Microsoft a présenté des vues de gestion dynamique SQL, ou DMV , que vous pouvez utiliser pour surveiller, diagnostiquer les problèmes et optimiser les performances de l’instance ou de la base de données SQL Server.
La vue sys.dm_exec_requests est une vue de gestion dynamique (DMV) SQL Server qui est très utile dans le diagnostic des problèmes de performances des requêtes.
Par exemple, vous pouvez visualiser toutes les requêtes en cours d’exécution en utilisant l’instruction suivante :
SELECT a.session_id,a.status,a.start_time,a.command,b.text FROM sys.dm_exec_requests a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b WHERE a.status = 'running'
SELECT d.text AS SQL_statement,login_time,[host_name],[program_name],a.session_id, client_net_address,a.status,command,DB_NAME(database_id) AS DatabaseName FROM sys.dm_exec_requests a INNER JOIN sys.dm_exec_connections b ON a.session_id = b.session_id INNER JOIN sys.dm_exec_sessions c ON c.session_id = a.session_id CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS d WHERE a.session_id > 50 AND a.session_id <> @@SPID /* Permet d’exclure session courante */ ORDER BY a.status
Pourcentage d’exécution d’un ordre SQL
En utilisant les vues DMV, il est également possible de suivre le pourcentage d’avancement d’un backup ou d’un restore .
Si la sauvegarde ou la restauration s’exécute à partir d’un travail SQL Server Agent, ou si quelqu’un a lancé le processus à partir d’une autre machine, la vue DMV sys.dm_exec_requests permet de connaitre la progression de celle-ci.
La vue DMV sys.dm_exec_requests peut être utilisée pour suivre les ordes SQL suivants : backup, restore, dbcc checkdb, checktable, dbcc shrinkdatabase, shrinkfile, dbcc indexdefrag, alter index reorganize, rollback operations…
Suivi des Verrous
La vue DMV sys.dm_tran_locks renvoie des informations sur les ressources du gestionnaire de verrou actuellement actives.
Chaque ligne représente une demande actuellement active au gestionnaire de verrouillage pour un verrou qui a été accordé ou attend d’être accordé.
Les colonnes du jeu de résultats sont divisées en deux groupes principaux : ressource et requête.
Le groupe de ressources décrit la ressource sur laquelle la demande de verrouillage est effectuée et le groupe de demandes décrit la demande de verrouillage.
Cette DMV est très utile pour identifier les problèmes de verrouillage et de blocage sur vos instances de base de données.
SELECT a.session_id AS blocked_session_id,b.session_id AS blocking_session_id,c.text AS blocking_text, e.wait_type AS blocking_resource,e.wait_duration_ms,d.text AS blocked_text FROM sys.dm_exec_requests a INNER JOIN sys.dm_exec_requests b ON a.blocking_session_id = b.session_id CROSS APPLY sys.dm_exec_sql_text(b.sql_handle) c CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) d INNER JOIN sys.dm_os_waiting_tasks e ON e.session_id = b.session_id
Conclusion
Les vues de gestion dynamique (DMV) permettent d’analyser ce qui se passe dans les différentes zones de SQL Server. En les utilisant, nous sommes en mesure de demander au système des informations sur son état de manière beaucoup plus efficace. Les DMV peuvent être utilisés pour optimiser les performances et pour résoudre les problèmes de serveurs et de requêtes.
1 réflexion sur “SQL Server et les vues de gestion dynamique (DMV)”
Merci pour ces explications et exemples pertinents sur les DMV 🙂
O.
Les commentaires sont fermés.