Oto dobry scenariusz I bezczelnie oszukany od tutaj :
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
Jest to dobre, ponieważ da ci wolne miejsce w każdym pliku DB (możesz mieć wiele plików i być może ktoś skonfigurował go, aby umieścić w nich jakieś obiekty), a także wolny rozmiar.
Na przykład masz plik danych 4 GB, który ma 3 GB wolnego miejsca. Być może masz 1 MDF bez dużej ilości danych, ale NDF z dużą ilością danych. Ta kwerenda pokaże ci wolny rozmiar w każdym pliku i do jakiej DB jest przydzielony ten plik. Pamiętaj, aby dodać wszystkie „SPACE_USED_MB” dla każdego DB, aby uzyskać całkowity rozmiar.
Powodzenia!
Edycja:
Usunięto nieobsługiwane i błędne polecenie, o którym myślałem, że mogę uciec od opublikowania tutaj tego zapytania. :(