Skip to content

mlorvand/FreeSpaceDrive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

💾 SQL Server Disk Space Monitor

🇮🇷 فارسی | 🇬🇧 English | 🇸🇦 العربية


🇮🇷 فارسی

🎯 هدف

این کوئری برای مانیتور کردن فضای دیسک در سرور SQL Server طراحی شده است.
با استفاده از DMV sys.dm_os_volume_stats و sys.master_files، اطلاعات حجم کل، فضای آزاد، فضای مصرف‌شده و درصد استفاده از هر درایو را نمایش می‌دهد.

🧩 ویژگی‌ها

  • نمایش حجم کل، فضای آزاد و فضای مصرف‌شده (به GB)
  • محاسبه درصد استفاده و درصد فضای آزاد
  • تعیین وضعیت هر درایو (Good, Warning, Critical)
  • مرتب‌سازی بر اساس کمترین فضای آزاد

⚙️ نحوه استفاده

کافیست کوئری زیر را در محیط SQL Server Management Studio (SSMS) اجرا کنید:

WITH DiskSpace AS (
    SELECT DISTINCT 
        vs.volume_mount_point AS Drive,
        vs.total_bytes,
        vs.available_bytes
    FROM sys.master_files mf
    CROSS APPLY sys.dm_os_volume_stats(mf.database_id, mf.file_id) vs
)
SELECT 
    Drive,
    FORMAT(total_bytes / (1024.0 * 1024 * 1024), 'N2') + ' GB' AS TotalSpace,
    FORMAT(available_bytes / (1024.0 * 1024 * 1024), 'N2') + ' GB' AS FreeSpace,
    FORMAT((total_bytes - available_bytes) / (1024.0 * 1024 * 1024), 'N2') + ' GB' AS UsedSpace,
    FORMAT((total_bytes - available_bytes) * 100.0 / total_bytes, 'N2') + '%' AS UsedPercentage,
    FORMAT(available_bytes * 100.0 / total_bytes, 'N2') + '%' AS FreePercentage,
    CASE 
        WHEN (available_bytes * 100.0 / total_bytes) < 10 THEN 'Critical'
        WHEN (available_bytes * 100.0 / total_bytes) < 20 THEN 'Warning' 
        ELSE 'Good'
    END AS Status
FROM DiskSpace
ORDER BY (available_bytes * 100.0 / total_bytes) ASC;
📊 خروجی نمونه
Drive	TotalSpace	FreeSpace	UsedSpace	UsedPercentage	FreePercentage	Status
C:\	500 GB	320 GB	180 GB	36.00%	64.00%	Good
D:\	100 GB	15 GB	85 GB	85.00%	15.00%	Warning
E:\	200 GB	8 GB	192 GB	96.00%	4.00%	Critical

🇬🇧 English
🎯 Purpose
This query helps you monitor disk usage on your SQL Server instance.
It retrieves volume information from sys.dm_os_volume_stats and sys.master_files to display total, free, and used space per drive, including percentage usage.

🧩 Features
Shows total, free, and used space (in GB)

Calculates usage and free percentages

Displays drive status (Good, Warning, Critical)

Orders drives by free space percentage

⚙️ How to Use
Run this query in SQL Server Management Studio (SSMS):

sql
Copy code
-- Same query as above
📊 Example Output
Drive	TotalSpace	FreeSpace	UsedSpace	Used%	Free%	Status
C:\	500 GB	320 GB	180 GB	36.00%	64.00%	Good
D:\	100 GB	15 GB	85 GB	85.00%	15.00%	Warning
E:\	200 GB	8 GB	192 GB	96.00%	4.00%	Critical

🇸🇦 العربية
🎯 الهدف
هذا الاستعلام مخصص لمراقبة مساحة الأقراص على خادم SQL Server.
يستخدم العرضين الديناميكيين sys.dm_os_volume_stats و sys.master_files لعرض الحجم الكلي، والمساحة الحرة، والمستخدمة، ونسبة الاستخدام لكل قرص.

🧩 الميزات
يعرض الحجم الكلي والمساحة الحرة والمستخدمة (بـ GB)

يحسب النسب المئوية للاستخدام والمساحة الحرة

يحدد حالة كل قرص (Good، Warning، Critical)

يرتب النتائج حسب أقل مساحة حرة

⚙️ طريقة الاستخدام
قم بتشغيل الاستعلام في SQL Server Management Studio (SSMS):

sql
Copy code
-- نفس الاستعلام أعلاه
📊 مثال على المخرجات
القرص	المساحة الكلية	المساحة الحرة	المساحة المستخدمة	نسبة الاستخدام	نسبة الفراغ	الحالة
C:\	500 GB	320 GB	180 GB	‎36.00%‎	‎64.00%‎	Good
D:\	100 GB	15 GB	85 GB	‎85.00%‎	‎15.00%‎	Warning
E:\	200 GB	8 GB	192 GB	‎96.00%‎	‎4.00%‎	Critical

🧠 نکته / Note / ملاحظة
این کوئری نیازی به دسترسی ادمین ندارد و روی تمام نسخه‌های SQL Server از 2012 به بعد قابل اجراست.
Works on all SQL Server editions (2012+).
يعمل على جميع إصدارات SQL Server من 2012 فصاعدًا.

yaml
Copy code

About

This query show your server all drives status with capacity counter and percentage value

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors