多くの列に異なるデータ型を使用する方がよいと思うテーブルがあります。これらの列がより適切なデータ型に切り替えられた場合のディスクスペースの見返りを判断するために、いくつかのテストを設計したいと思います。ASE 15.0でテーブルが占有しているディスク容量を確認するにはどうすればよいですか?
2 に答える
を使用し
sp_spaceused, table, 1
ます。これにより、テーブルと各インデックスが個別に報告されます。data
によって使用されるスペースを除算するrowtotal
と、実際の行の長さの 1 つの値が得られます (ロック スキームとアクティビティに基づく断片化はカウントされません)。を使用し
sp_help table_name
ます。これにより、意図した行の長さまたは平均の行の長さである別の値が得られます。提供された情報を使用して、列の長さで簡単な計算を行います。次に、意図したデータ型の変更に対してそれらがどうなるかを見積もります。可変長列には、それぞれ 4 バイトの追加バイトが必要であることに注意してください。
- 列が Nullable の場合、Var Len として格納されます。
次に、同じ列、新しいデータ型を使用して新しいテーブルを (一時的にでも) 作成し、(2) を繰り返します。これにより、見積もりが確定します。
sp_estspace
目的が違います。
1> sp_spaceused TableName
2> go
name rowtotal reserved data index_size unused
-------------------- ----------- --------------- --------------- --------------- ---------------
TableName 5530288 5975116 KB 5537552 KB 392292 KB 45272 KB
ただし、列ごとの内訳を提供するものは何も知りません。テーブルに対して sp_help を使用すると、すべての列とその長さのリストが表示されます。これは、列が使用できるストレージの量を示していると思います。
sp_estspace を使用してテーブル サイズを見積もる方法はありますが、試したことはありません。