Đây là một kịch bản hay mà tôi xấu hổ xé từ đây :
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
Điều này là tốt vì nó sẽ cung cấp cho bạn không gian trống trong mỗi tệp DB (bạn có thể có nhiều tệp và có lẽ ai đó đã thiết lập nó để đặt một số đối tượng trong mỗi tệp) cũng như kích thước miễn phí.
Ví dụ: bạn có tệp dữ liệu 4GB có 3 GB dung lượng trống. Có thể bạn có 1 MDF không có nhiều dữ liệu nhưng một NDF có nhiều dữ liệu. Truy vấn này sẽ cho bạn biết kích thước miễn phí trong mỗi tệp và DB mà tệp đó được phân bổ. Nhớ thêm tất cả 'SPACE_USED_MB' cho mỗi DB để có tổng kích thước.
Chúc may mắn!
Chỉnh sửa:
Đã xóa một lệnh không được hỗ trợ và lỗi mà tôi nghĩ rằng tôi có thể thoát khỏi việc đăng bài ở đây cho truy vấn này. :