2010-07-22 67 views
1

我有一張表,如果它對許多列使用不同的數據類型,我認爲可能會更好。如果這些列切換到更好的數據類型,我希望設計一些測試來確定光盤空間的收益。我如何確定在ASE 15.0中佔用了多少磁盤空間?如何確定一個表在ASE中使用多少磁盤空間

回答

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估計表大小的方法,但我從來沒有嘗試過這些。

+0

並臨時表? – 2013-11-11 13:49:32

4
  1. 使用sp_spaceused, table, 1。它分別報告表格和每個索引。對rowtotal使用的data空間進行分區將爲您提供實際行長度的一個值(不計算基於鎖定方案和活動的碎片)。使用sp_help table_name。這會給你另一個值,即預期的或平均的行長。使用提供的信息,使用列長度進行簡單的算術運算;然後估計他們將重新設定您想要的數據類型更改。

  2. 請注意,可變長度列每個需要4個附加字節。

    • 如果某列是可空的,則它將存儲爲Var Len。
  3. 現在用新的數據類型創建新表(甚至是暫時的),使用相同的列,並重復(2)。這將確認你的估計。

  4. sp_estspace有不同的目的。

相關問題