Berikut adalah kueri yang digunakan Management Studio untuk mengisi angka-angka itu:
SELECT
(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df
WHERE df.type in ( 0, 2, 4 ) ) AS [DbSize],
SUM(a.total_pages) AS [SpaceUsed],
(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df
WHERE df.type in (1, 3)) AS [LogSize]
FROM
sys.partitions p join sys.allocation_units a
on p.partition_id = a.container_id
left join sys.internal_tables it
on p.object_id = it.object_id
Anda perlu melakukan matematika di sini seperti halnya Management Studio untuk mendapatkan angka yang sama. Juga, kiri bergabung sys.internal_tables
tampaknya tidak berguna di terbaik. Jadi, sesuaikan kueri itu agar sesuai dengan output ideal Anda:
SELECT
(SELECT CONVERT(DECIMAL(18,2), SUM(CAST(df.size as float))*8/1024.0)
FROM sys.database_files AS df
WHERE df.type in ( 0, 2, 4 ) ) AS [DbSize],
CONVERT(DECIMAL(18,2), SUM(a.total_pages)*8/1024.0) AS [SpaceUsed],
(SELECT CONVERT(DECIMAL(18,2), SUM(CAST(df.size as float))*8/1024.0)
FROM sys.database_files AS df
WHERE df.type in (1, 3)) AS [LogSize]
FROM sys.partitions p join sys.allocation_units a
on p.partition_id = a.container_id;
Dengan pembaruan ini, dengan asumsi database Anda tidak berubah untuk sementara, itu akan menghasilkan:
753475.94 744030.07 2900.00
Melakukan beberapa matematika sederhana, dan mengisolasi hanya tiga angka yang Anda inginkan:
;WITH t(s) AS
(
SELECT CONVERT(DECIMAL(18,2), SUM(size)*8/1024.0)
FROM sys.database_files
WHERE [type] % 2 = 0
),
d(s) AS
(
SELECT CONVERT(DECIMAL(18,2), SUM(total_pages)*8/1024.0)
FROM sys.partitions AS p
INNER JOIN sys.allocation_units AS a
ON p.[partition_id] = a.container_id
)
SELECT
Allocated_Space = t.s,
Available_Space = t.s - d.s,
[Available_%] = CONVERT(DECIMAL(5,2), (t.s - d.s)*100.0/t.s)
FROM t CROSS APPLY d;
Sesuatu yang saya kumpulkan. Anda PERLU POWERSHELL pada SQL Server Anda untuk menjalankan ini. Tidak yakin dengan versinya. Ini akan mengambil ukuran drive Anda dan melaporkan kembali ukuran file dan ruang kosong serta ruang drive gratis.
Ini bukan 100% asli dan bagian dari itu saya temukan di tempat lain di internet dan menyatukan semuanya. Itu adalah PITA untuk membuatnya agar sesuai dengan margin yang tepat sehingga Anda mungkin harus bermain dengan tanda kurung
sumber
Skrip di bawah ini dapat digunakan untuk mendapatkan informasi berikut: 1. Info Ukuran DB 2. FileSpaceInfo 3. AutoGrowth 4. Model Pemulihan 5. Informasi Log_reuse_backup
sumber