Le service pack 1 de SQL Server 2008 R2 a introduit quelques nouvelles vues de gestion dynamique fort intéressantes, surtout quand il s’agit de communiquer avec les administrateurs système.
=> sys.dm_os_volume_stats permet d’obtenir quelques informations sur les volumes sur lesquels sont stockés les fichiers des bases de données hébergées par le serveur. On obtient la liste des volumes avec leurs caractéristiques avec la requête suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ------------------------------- -- Nicolas Souquet - 13/03/2012 ------------------------------- SELECT DISTINCT VS.volume_mount_point , VS.volume_id , VS.logical_volume_name , VS.file_system_type , VS.total_bytes / 1024 / 1024 AS volume_size_MB , VS.available_bytes / 1024 / 1024 AS volumn_free_space_MB , VS.supports_compression , VS.supports_alternate_streams , VS.supports_sparse_files , VS.is_read_only , VS.is_compressed FROM sys.master_files AS MF CROSS APPLY sys.dm_os_volume_stats(MF.database_id, MF.file_id) AS VS |
Et un requête avec la carte des fichiers, pour toutes les bases de données :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ------------------------------- -- Nicolas Souquet - 13/03/2012 ------------------------------- SELECT D.name AS database_name , MF.name AS file_logical_name , MF.physical_name AS file_physical_name , MF.type_desc AS file_type , VS.volume_mount_point , VS.volume_id , VS.logical_volume_name , VS.file_system_type , VS.total_bytes / 1024 / 1024 AS volume_size_MB , VS.available_bytes / 1024 / 1024 AS volumn_free_space_MB , VS.supports_compression , VS.supports_alternate_streams , VS.supports_sparse_files , VS.is_read_only , VS.is_compressed FROM sys.master_files AS MF CROSS APPLY sys.dm_os_volume_stats(MF.database_id, MF.file_id) AS VS INNER JOIN sys.databases AS D ON D.database_id = MF.database_id -- WHERE D.name = 'maBD' |
La documentation de cette DMV pour SQL Server 2008 R2 et SQL Server 2012
=> sys.dm_os_windows_info
Cette DMV retourne quelques informations intéressantes à propos de l’installation de Windows qui héberge SQL Server.
En l’interrogeant sur mon PC sous Windows 7 SP1 en Français, j’obtiens :
La documentation de cette DMV pour SQL Server 2008 R2 et SQL Server 2012
=> sys.dm_server_registry
Cette DMV retourne toutes les valeurs stockées dans le registre pour SQL Server, en ce qui concerne les options de démarrage du service, et la configuration des protocoles de connexion à l’instance interrogée :
La documentation de cette DMV pour SQL Server 2008 R2 et SQL Server 2012
=> sys.dm_server_services
Comme son nom l’indique, cette DMV retourne quelques informations sur les services installés pour l’instance SQL Server interrogée :
On notera que sont exposés la date de dernier démarrage du service et l’instance est en cluster.
La documentation de cette DMV pour SQL Server 2008 R2 et SQL Server 2012
=> sys.dm_server_memory_dumps
Cette DMV retourne l’ensemble des vidages mémoire avec le chemin des fichiers, c’est-à -dire à chaque fois que SQL Server a rencontré un gros problème.
Malheureusement (ou pas) sur mon installation de SQL Server 2012, l’interrogation de cette DMV ne retourne rien
La documentation de cette DMV pour SQL Server 2008 R2 et SQL Server 2012
On le voit donc, Microsoft continue d’exposer les données système à travers les fonctions et vues de gestion dynamique (respectivement DMF et DMV dans la littérature, et plus généralement DMO pour Dynamic Management Object).
Elles ont été introduites avec SQL Server 2005, et facilitent grandement les travail des administrateurs de bases de données et des consultants.
Ces 5 nouvelles DMVs permettent notamment de démarrer une discussion avec les administrateurs système.
En effet en exécutant de telles requêtes sur un ensemble de serveurs hébergeant une instance de SQL Server à travers les possibilités de Central Management Server, elles permettent en outre de comparer et détecter très simplement les différences de configuration entre plusieurs serveurs, et elles sont donc fort bienvenues.
ElSüket.