SQL Server 2014を使用しています。サイズは12 GBのデータベースが1つあります。 は、私は次のクエリを使用して、ファイルサイズを確認することができます。これは、.ldf
ファイルが9ギガバイトで、.mdf
ファイルは3ギガバイトであることを示している実際のデータと比較してSQL Serverデータベースが大きすぎます
SELECT ((size * 8)/1024), *
FROM sys.sysfiles
。
は、それから私は、実際のテーブルのサイズを確認するには、次のクエリを使用:
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メガバイトであることを示しています。
しかし、私たちは.mdf
ファイルの残りの3 GBを占めているのだろうかと思っています。
mdfファイルとldfファイルで非常に多くの領域を占めるオブジェクトを見つけてください。
ありがとうございました!
フルリカバリモードになっていますか?データベースのメンテナンスはありますか?なぜあなたのクエリの特定のオブジェクトを除外しましたか?合計サイズが必要な場合は、オブジェクトを除外しないでください。トランザクションログのような音はかなり大きく、維持されていません。 –
実際に使用されているデータベースの量を確認してください。これは、データベースのプロパティウィンドウまたは[sp_spaceused](https://docs.microsoft.com/en-us/sql/relational-databases/databases/display-data-and-log-space-information-sql/) for-a-database)ストアドプロシージャ。テーブルが不足しているか、ある時点で多くのデータをロードしてから削除したかのいずれかです。ログファイルのサイズは、それがかなりの時間バックアップされていないことを明確に示しています –
こんにちはショーンランゲ、私はすべてのオブジェクトを含めて、もう一度試しました。それでも同じサイズを示します。データベースリカバリモードは「シンプル」に設定されています。 –