นี่เป็นสคริปต์ที่ดีที่ฉันฉีกขาดจากที่นี่ :
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
สิ่งนี้เป็นสิ่งที่ดีเพราะจะทำให้คุณมีพื้นที่ว่างในไฟล์ DB แต่ละไฟล์ (คุณอาจมีหลายไฟล์และบางคนอาจตั้งค่าให้วางวัตถุบางอย่างในแต่ละไฟล์) เช่นเดียวกับขนาดฟรี
ตัวอย่างเช่นคุณมีไฟล์ข้อมูลขนาด 4GB ซึ่งมีพื้นที่ว่าง 3GB บางทีคุณอาจมี 1 MDF โดยไม่มีข้อมูลจำนวนมาก แต่ NDF ที่มีข้อมูลจำนวนมาก แบบสอบถามนี้จะบอกขนาดฟรีในแต่ละไฟล์และฐานข้อมูลที่จัดสรรให้ อย่าลืมเพิ่ม 'SPACE_USED_MB' ทั้งหมดสำหรับแต่ละฐานข้อมูลเพื่อให้ได้ขนาดโดยรวม
โชคดี!
แก้ไข:
ลบคำสั่งที่ไม่ได้รับการสนับสนุนและ buggy ที่ฉันคิดว่าฉันสามารถออกไปด้วยการโพสต์ที่นี่สำหรับแบบสอบถามนี้ :(