1

多くの列に異なるデータ型を使用する方がよいと思うテーブルがあります。これらの列がより適切なデータ型に切り替えられた場合のディスクスペースの見返りを判断するために、いくつかのテストを設計したいと思います。ASE 15.0でテーブルが占有しているディスク容量を確認するにはどうすればよいですか?

4

2 に答える 2

4
  1. を使用しsp_spaceused, table, 1ます。これにより、テーブルと各インデックスが個別に報告されます。dataによって使用されるスペースを除算するrowtotalと、実際の行の長さの 1 つの値が得られます (ロック スキームとアクティビティに基づく断片化はカウントされません)。

  2. を使用しsp_help table_nameます。これにより、意図した行の長さまたは平均の行の長さである別の値が得られます。提供された情報を使用して、列の長さで簡単な計算を行います。次に、意図したデータ型の変更に対してそれらがどうなるかを見積もります。

  3. 可変長列には、それぞれ 4 バイトの追加バイトが必要であることに注意してください。

    • 列が Nullable の場合、Var Len として格納されます。
  4. 次に、同じ列、新しいデータ型を使用して新しいテーブルを (一時的にでも) 作成し、(2) を繰り返します。これにより、見積もりが確定します。

  5. sp_estspace目的が違います。

于 2011-01-15T23:10:53.280 に答える
1
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 を使用してテーブル サイズを見積もる方法はありますが、試したことはありません。

于 2010-07-23T08:05:16.040 に答える