2011-12-05 9 views
0

を減らして、私はは、SQL Serverデータベースのサイズ

SELECT t.NAME AS TableName, i.name AS indexName, SUM(p.rows) AS RowCounts, 
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 ORDER BY OBJECT_NAME(i.object_id) 

多くのテーブルがTotalSpaceMBとUsedSpaceMB列に大きな差が認められた私のデータベース内のすべてのテーブルのサイズを取得するには、次のスクリプトを実行しました。 TotalSpaceMB = 7.6GBの合計、UsedSpaceMBの合計= 1.1GB。
例:テーブル名:部品表

行カウント:72747
総ページ数:183960
使用されるページ:23999
データページ数:21752
TotalSpaceMB:1437
UsedSpaceMB:187
のDataSpace MB:169

私のデータも7GBを超えるサイズを保証するほど大きくありません。

合計サイズがMBで、使用サイズがMBで大きく異なるのはなぜですか?また、合計サイズをMBで減らす方法はありますか?

SQL Management Studioを使用してデータベースを縮小するだけでは役に立ちませんでした。

答えて

1

MB

にMBでの合計サイズと使用済みのサイズで、このような大きな違いの理由かもしれない何
  • 1時のデータがありました。

  • 誰かがrservesを使用してデータベースを作成しましたが、これは高価な操作であるためです。

- どのファイルですか?たとえば、ほとんどのスペースがログファイルに含まれている場合、その合計は無関係です。

+0

合計7.6 GBの領域が.mdfファイルによって占有されています。ログファイルは非常に小さい(約12MB)。 – SVK

+0

それから私は予防策で賭けました。実稼働マシン上でデータベースファイルを独自に作成させないことをお勧めします。 – TomTom

+0

Ok ..ライトでは、ファイルの自動拡張オプションが「10%制限なし」に設定されています。設定を修正し、データファイルのサイズを小さくする方法はありますか? – SVK

関連する問題