SQL Server 2005 に、約 3.5 GB の領域を使用する大きなテーブルがあります (sp_spaceused によると)。1,000 万件のレコードといくつかのインデックスがあります。
そこから一連の列を削除しただけで、レコード長が半分になりましたが、驚いたことに、それを行うのに時間がかかりませんでした。明らかに、sp_spaceused は引き続き同じ占有スペースを報告していました。SQL サーバーは、列を削除したときに、列を「削除済み」としてマークする以外には何もしていませんでした。
そこで、すべてのデータをこのテーブルから別の新しいテーブルに移動し、それを切り捨て、すべてのデータを元に戻して、すべて再構築できるようにしました。
現在、データは 2.8 GB を占めており、これは以前よりも少なくなっていますが、より大きな低下を予想していました。
このテーブルにはもともとこれらの列があったという事実が、まだそこに何かを残している可能性はありますか?
切り捨てでは不十分でしたか?ドロップして、小さい列セットで再度作成する必要がありますか?
それとも、データは本当に 2.8 GB を取っていますか?
ありがとう!