我們正在使用SQL Server 2014.我們有一個大小爲12 GB的數據庫。 我用下面的查詢,並且可以看到文件大小爲:與實際數據相比,SQL Server數據庫太大
SELECT ((size * 8)/1024), *
FROM sys.sysfiles
這顯示了.mdf
文件3 GB,.ldf
文件是9 GB。
然後我用下面的查詢看到的實際表尺寸:
SELECT
t.NAME AS TableName,
i.name as indexName,
p.[Rows],
SUM(a.total_pages) as TotalPages,
SUM(a.used_pages) as UsedPages,
SUM(a.data_pages) as DataPages,
(SUM(a.total_pages) * 8)/1024 as TotalSpaceMB,
(SUM(a.used_pages) * 8)/1024 as UsedSpaceMB,
(SUM(a.data_pages) * 8)/1024 as DataSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%' AND
i.OBJECT_ID > 255 AND
i.index_id <= 1
GROUP BY
t.NAME, i.object_id, i.index_id, i.name, p.[Rows]
ORDER BY
5 desc
這說明總規模僅40 MB。
但是,我們想知道什麼是佔用3 GB的剩餘空間在.mdf
文件。
請幫助我們找出在MDF和LDF文件服用這麼大的空間物體的對象。
非常感謝您的時間!
您是否處於完全恢復模式?你有沒有對數據庫進行任何維護?爲什麼你排除查詢中的某些對象?如果你想要總大小,你不應該排除對象。聽起來像事務日誌非常大,不被維護。 –
檢查實際使用的數據庫數量。您可以從數據庫的屬性窗口或[sp_spaceused](https://docs.microsoft.com/en-us/sql/relational-databases/databases/display-data-and-log-space-information- for-a-database)存儲過程。要麼你缺少表格,要麼你在某個時候加載了大量數據,然後將其刪除。日誌文件definitelly的大小表明它沒有備份很長一段時間 –
嗨Sean Lange,我已經包含了所有對象並再次嘗試。它仍然顯示相同的尺寸。數據庫恢復模式設置爲「簡單」。 –