Ось хороший сценарій, який я безсоромно вирвав звідси :
use [Insert DB Name]
select
a.FILEID,
[FILE_SIZE_MB] =
convert(decimal(12,2),round(a.size/128.000,2)),
[SPACE_USED_MB] =
convert(decimal(12,2),round(fileproperty(a.name, 'SpaceUsed')/128.000,2)),
[FREE_SPACE_MB] =
convert(decimal(12,2),round((a.size-fileproperty(a.name, 'SpaceUsed'))/128.000,2)) ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a
Це добре, тому що ви дасте вільний простір у кожному файлі БД (у вас може бути декілька файлів і, можливо, хтось встановив його для розміщення деяких об'єктів у кожному), а також вільний розмір.
Наприклад, у вас є файл даних 4 Гб, який має 3 Гб вільного місця. Можливо, у вас є 1 MDF без великої кількості даних, але NDF з великою кількістю даних. Цей запит покаже вам вільний розмір у кожному файлі та якому БД цей файл призначений. Не забудьте скласти всі "SPACE_USED_MB" для кожної БД, щоб отримати загальний розмір.
Удачі!
Редагувати:
Видалено непідтримувану та помилкову команду, на яку я вважав, що можу піти з публікації цього запиту. :(