IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Utilisation d'une DMV non existant sur une version sql


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 816
    Points : 1 354
    Points
    1 354
    Billets dans le blog
    2
    Par défaut Utilisation d'une DMV non existant sur une version sql
    Bonjour a tous

    Après moultes recherches, temps passé sur des forums et sites, je décide de venir ici présenter ma problématique en espérant avoir des idées lumineuses de votre part
    j'explique mon problème , je viens de créé un Rapport SRRS pour le suivi d’état d'espace disque et les différentes partition de mon serveur pour cela je viens d'utiliser ce dernier script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    WITH diskspace AS
    (SELECT volume_mount_point AS Volume
    	 , CAST(MIN(VolumeTotalMo) AS DECIMAL(18, 2)) AS [Volume Space]
    	 , CAST(SUM(FileSizeMo) AS DECIMAL(18, 2)) AS [DB Files]
    	 , CAST(MIN(VolumeTotalMo)-SUM(FileSizeMo)-MIN(VolumeAvailableMo) AS DECIMAL(18,2)) AS [Other Files]
    	 , CAST(MIN(VolumeAvailableMo) AS DECIMAL(18, 2)) AS [Free Space]
    	 , CAST(SUM(FileGrowthMo) AS DECIMAL(18, 2)) AS [Space for DB growth]
    	 , CAST(MIN(VolumeAvailableMo) - SUM(FileGrowthMo) AS DECIMAL(18, 2)) AS [Free space after growth]
    	 , CAST(MIN(VolumeAvailableMo) / MIN(VolumeTotalMo) * 100 AS DECIMAL(18, 2)) AS [Percent free space]
    	 , CAST(( MIN(VolumeAvailableMo) - SUM(FileGrowthMo) )
    	   / MIN(VolumeTotalMo) * 100 AS DECIMAL(18, 2)) AS [Percent free space after growth]
         , CASE WHEN CAST(( MIN(VolumeAvailableMo) - SUM(FileGrowthMo) )
    	   / MIN(VolumeTotalMo) * 100 AS DECIMAL(18, 2)) > 10 THEN CAST(0 AS DECIMAL(18,2))  -- 0 green 10% after growth
    	   WHEN CAST(MIN(VolumeAvailableMo) / MIN(VolumeTotalMo) * 100 AS DECIMAL(18, 2)) > 10 THEN CAST(1 AS DECIMAL(18,2)) -- 1 orange 10% available
    	   ELSE CAST(2 AS DECIMAL(18,2))  -- 2 red less than 10%
    	   END AS Threshold
    FROM	   ( SELECT	DB_NAME(f.database_id) AS [DatabaseName]
    			   , f.file_id
    			   , CAST(f.size AS FLOAT) * 8 / 1024 AS FileSizeMo
    			   , CASE	WHEN f.is_percent_growth = 1
    					THEN ( CAST(f.size AS FLOAT) * f.growth / 100 ) * 8
    						/ 1024
    					ELSE CAST(f.growth AS FLOAT) * 8 / 1024
    				END AS FileGrowthMo
    			   , vs.volume_mount_point
    			   , CAST(vs.total_bytes AS FLOAT) / 1024 / 1024 AS VolumeTotalMo
    			   , CAST(vs.available_bytes AS FLOAT) / 1024 / 1024 AS VolumeAvailableMo
    			   , ( CAST(vs.available_bytes AS FLOAT)
    				  / CAST(vs.total_bytes AS FLOAT) ) * 100 AS [Space Free %]
    		FROM		sys.master_files AS f
    				CROSS APPLY sys.dm_os_volume_stats(f.database_id,
    											f.file_id) AS vs
    	   ) AS FileSizes
    GROUP BY volume_mount_point)
    SELECT Volume, dstatus, 
    CASE dstatus WHEN 'DB Files' THEN 2 WHEN 'Other Files' THEN 3 WHEN 'Free Space' THEN 4 
    WHEN 'Volume Space' THEN 1 WHEN 'Space for DB growth' THEN 5 WHEN 'Free space after growth' THEN 6
    WHEN 'Percent free space' THEN 7 WHEN 'Percent free space after growth' THEN 8
    WHEN 'Threshold' THEN 9
    END AS SortOrder,
    value FROM
    (SELECT Volume, [Volume Space],[DB Files],[Other Files],[Free Space],[Space for DB growth],[Free space after growth],[Percent free space],[Percent free space after growth],[Threshold] FROM diskspace) p
    UNPIVOT
    (value FOR dstatus IN ([Volume Space],[DB Files],[Other Files],[Free Space],[Space for DB growth],[Free space after growth],[Percent free space],[Percent free space after growth],[Threshold]) ) AS pv
    ORDER BY Volume,SortOrder
    En exécutant le rapport un message d’erreur apparaît en indiquant un problème sur la DMV "sys.dm_os_volume_stats"
    Google est mon ami, et une petite recherche me fait aboutir que la DMV sys.dm_os_volume_stats Nécessite au moins 2008r2 SP1 or je suis sur 2008 R2 (RTM)
    alors je pause la question existe t'il une méthode pour injection ou la création de cette DMV sans faire l'installation du corrective vu qu'il s’agit d'un serveur du production qui doit être disponible 24/24 ,SVP n'hésitez pas à me corriger si je dis des bêtises
    Images attachées Images attachées  

  2. #2
    Membre averti
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Points : 357
    Points
    357
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Si c'est uniquement pour le suivi de vos disques vous pouvez utiliser la procédure stockée système :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EXEC MASTER..xp_fixeddrives
    GO

    Et insérer le résultat dans une table et créer des alertes selon vos conditions.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6

Discussions similaires

  1. [XL-2010] Afficher les valeurs d'une colonne non répetées sur une deuxième
    Par zombiestomp dans le forum Excel
    Réponses: 3
    Dernier message: 26/02/2014, 12h05
  2. Réponses: 3
    Dernier message: 03/02/2014, 20h16
  3. Réponses: 0
    Dernier message: 07/12/2007, 13h12
  4. Requete SUM sur une table avec critère sur une autre
    Par wail00 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/05/2007, 16h58
  5. [Access] Requête sur une table et tri sur une autre
    Par VooDooS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/08/2006, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo