1

SQL Server データベースのプロパティでは、データベースのサイズは 67069.081 MB と表示されていますが、このスクリプトを実行すると

Create Table #Temp(Name sysname, rows int, reserved varchar(100), data varchar(100),    index_size varchar(100), unused varchar(100))

exec sp_msforeachtable 'Insert Into #Temp Exec sp_spaceused ''?'', ''true''' 

Select  SUM(CONVERT(INT,REPLACE(data, ' KB', ''))) as d From #Temp

Drop Table #Temp

結果は 7650088 KB ほぼ 7470.7890625 MB

67069.081、7470.7890625 の 8.97750966316 倍

4

2 に答える 2

0

テーブルにはクラスター化されたインデックスがないため、完全に論理的に最適化 (インデックスの再構築) することはできません。つまり、インデックスはデフラグされますが、実際のデータはデフラグされません。

また、ヒープ (クラスター化インデックスのないテーブル) からの DELETE は、領域の割り当てを解除しません。詳細については、 http://msdn.microsoft.com/en-us/library/ms189245 (v=sql.105).aspxを参照してください。

ソリューション?

Add clustered indexes for a long term fix (subject to regular index maintenance)
Run DBCC SHRINKFILE with NOTRUNCATE to compact data.
于 2013-11-01T09:09:44.680 に答える