База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как узнать % оставшегося места на SQL сервере в SSMS 20.2?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 месяца назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
27 декабря 2025 в 16:00 #35352
В ms sql server managment studio 20.2 есть ли возможность посмотреть процент оставшегося дискового пространства конкретного sql сервера? интересует как с помощью команд так и штатные отчёты
-
27 декабря 2025 в 16:00 #35353
В MS SQL Server Management Studio (SSMS) 20.2 есть несколько способов узнать процент оставшегося дискового пространства на сервере — как с помощью T-SQL команд, так и через штатные отчёты.
—
### 1. Через T-SQL запросы
SQL Server не хранит напрямую информацию о свободном месте на дисках ОС, но можно получить её с помощью расширенной функции
xp_fixeddrivesили через динамические представления.#### Пример 1. Использование
xp_fixeddrivesMySQL1EXEC xp_fixeddrives;Выводит список дисков с количеством свободного места в мегабайтах.
Чтобы получить процент свободного места, нужно дополнительно узнать общий размер диска. Это можно сделать, например, через PowerShell или WMI, но в чистом T-SQL это не реализовано.
#### Пример 2. Использование расширенного запроса с WMI через SQL Server
MySQL12345678910111213DECLARE @DriveSpace TABLE (Drive VARCHAR(2),FreeSpaceMB INT,TotalSpaceMB INT,FreeSpacePercent DECIMAL(5,2));INSERT INTO @DriveSpace (Drive, FreeSpaceMB, TotalSpaceMB, FreeSpacePercent)EXEC xp_cmdshell 'wmic logicaldisk get name,freespace,size /format:csv';-- Обработка результата xp_cmdshell требует дополнительной обработки, поэтому проще использовать PowerShell или внешние скрипты.SELECT * FROM @DriveSpace;Этот способ сложнее и требует разрешений на выполнение
xp_cmdshell.—
### 2. Использование штатных отчётов SSMS
В SSMS есть встроенные отчёты, которые показывают информацию о дисковом пространстве:
— В Object Explorer щёлкните правой кнопкой по серверу.
— Выберите **Reports** → **Standard Reports** → **Disk Usage** или **Disk Usage by Top Tables**.Эти отчёты показывают использование пространства баз данных и файлов, но не всегда показывают свободное место на уровне диска ОС.
—
### 3. Использование системных представлений для анализа файлов баз данных
Можно узнать размер файлов баз данных и свободное место внутри них:
MySQL1234567891011SELECTdb.name AS DatabaseName,mf.name AS LogicalName,mf.physical_name,mf.size / 128.0 AS SizeMB,mf.size / 128.0 - CAST(FILEPROPERTY(mf.name, 'SpaceUsed') AS INT) / 128.0 AS FreeSpaceMB,((mf.size / 128.0 - CAST(FILEPROPERTY(mf.name, 'SpaceUsed') AS INT) / 128.0) * 100.0) / (mf.size / 128.0) AS FreeSpacePercentFROM sys.master_files mfINNER JOIN sys.databases db ON db.database_id = mf.database_idWHERE mf.type_desc = 'ROWS'ORDER BY db.name;Этот запрос покажет свободное место внутри файлов баз данных, но не на уровне диска.
—
### Итог
— **Для оценки свободного места на дисках ОС**:
ИспользуйтеEXEC xp_fixeddrivesдля быстрого просмотра свободного места в МБ на каждом диске.— **Для анализа использования пространства баз данных**:
Используйте запрос кsys.master_filesиFILEPROPERTY(пример выше).— **Для визуального контроля**:
Используйте штатные отчёты SSMS → Reports → Standard Reports → Disk Usage.—
Рекомендую посмотреть здесь:
https://winitpro.ru/index.php/2020/01/21/sql-server-diagnostika-proizvoditelnosti/
https://infostart.ru/1c/articles/1128594/
https://infostart.ru/1c/articles/1059227/
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.