1

列の型を実際の小さい型に変更しました。

-- change type from nvarchar(100) to varchar(50)
Alter Table [MyTable] Alter column [MyColumn] varchar(50) 

テーブルには 4 Mio が含まれています。記録。以前は約 1.1 GB のスペースを使用していましたが、列の変更後は 2.2 GB のスペースを使用しています。それについての説明はありますか?

SMO を使用するか、SQL Server Management Studio のテーブル プロパティを参照して、使用するスペースを見つけます: "MyTable -> プロパティ -> ストレージ -> データ スペース"。これがデータによって使用される実際のスペースであるとは思えません。

4

2 に答える 2

2

実行ALTER INDEX ALL On MyTable REBUILDしてから、「true」フラグを使用してスペースを再度確認します

基本的に、タイプの変更により、何らかの形でストレージが断片化されています。たとえば、現在は NULL 可能であり、ディスク上の構造に影響を与える前はありませんでした。ALTER TABLE で NULL/NOT NULL を指定していないため、この例を選択しました

于 2011-06-09T07:01:31.757 に答える
0

sp_spaceused を使用すると、テーブルで使用されているスペースに関する詳細情報を取得できます。

EXEC sp_spaceused @objname = N'dbo.MyTable' ,@updateusage = N'TRUE';
于 2011-06-09T06:58:38.370 に答える