go backarticles

Articles of SQLschool.gr Team

Monitor Disk Space for SQL Server databases

Antonios Chatzipavlis





Job Code

declare @threshold_space_pct decimal(5,2) = 99.000;
declare @ebody nvarchar(max) ='';
with r as (
select distinct     v.volume_mount_point as drive
                ,   v.total_bytes as drive_size_in_bytes
                ,   v.available_bytes as drive_free_space_in_bytes
                ,   p.drive_free_space_pct
                ,   iif (p.drive_free_space_pct<=@threshold_space_pct,1,0) as low_space
from sys.master_files AS f  
cross apply sys.dm_os_volume_stats(f.database_id, f.file_id) as v
cross apply ( values (cast ( (v.available_bytes * 1.0 ) / (v.total_bytes * 1.0 ) as  decimal(5,2) )  * 100.0 ) ) as p(drive_free_space_pct)
)
select @ebody += drive + ' detected with low space ' + CHAR(10)+CHAR(13) from r where low_space = 1 ; 
if ( len(@ebody) > 0 )
begin
    declare @subject nvarchar(1024) = 'Low disk space detected in SQL Server instance ' +  @@Servername  
    EXEC msdb.dbo.sp_send_dbmail 
                @profile_name = 'YourProfile',
                @recipients = 'dba@sqlschool.gr',
                @body = @ebody,
                @subject = @subject
end


//antonch



Relative Articles

Comments

user-gravatar

Στις 05 Oct 2018 @ 7:42 PM o/η ΓΙΑΝΝΑΡΟΣ ΔΗΜΗΤΡΗΣ έγραψε:

Είναι μια θαυμάσια προσπάθεια αυτά τα καινούργια Vlogs.Πολύ βολικό και και για DBA's αλλά σωτήριο για τους "accidental DBA's"

user-gravatar

Στις 08 Oct 2018 @ 1:57 PM o/η Vassilis έγραψε:

Πολύ καλό και εύκολο vlog.Να πώω μόνο ότι για να μου παίξει έπρεπε να αλλάξω το παρακάτω: -- , iif (p.drive_free_space_pct<=@threshold_space_pct,1,0) as low_spaceμε το παρακάτω: ,case when p.drive_free_space_pct<=@threshold_space_pct then 1 else 0 end as low_space Ευχαριστώ και πάλι.

user-gravatar

Στις 08 Oct 2018 @ 2:35 PM o/η Antonios Chatzipavlis έγραψε:

@Vassilis Προφανώς είσαι σε έκδοση του SQL Server πριν το 2012 όπου δεν υπάρχει η IIF. Γιατί?

user-gravatar

Στις 08 Oct 2018 @ 3:04 PM o/η Vassilis έγραψε:

@Antonios Γιατί : "αφού δουλεύει γιατί να το αλλάξω" Με αποδείξεις σε lab για το πόσο ποιο γρήγορα θα έτρεχε μία νέα version και πόσο ποιο εύχρηστο θα γίνονταν το Reporting με τα SSRS . Ευτυχώς που σταματάει η υποστήριξη του χρόνου και βγήκαν και τα "ψηφιακά άλματα" και οι "ποιοτικοί εκσυγχρονισμοί" μπας και τρέξουμε κανένα σύγχρονο query. Ειδικά τα data-driven subscriptions τα περιμένω και ξερογλείφομαι.

Leave your comment

Login with your SQLschool.gr account if you want to comment on this article.


PASS chapter logo

The Official PASS Local Group for Greece

1434 33 595 27 39 1319
sql school greece logo
© 2010-2019 All rights reserved