我想刪除150 GB表(46億記錄)的varchar(100)列。該列中的所有數據均爲空。數據庫中有30GB的空間。Teradata刪除列返回「沒有更多空間」
當我嘗試刪除列時,它說「沒有更多的數據庫XY空間」。爲什麼這樣的行動需要這麼多空間?
我想刪除150 GB表(46億記錄)的varchar(100)列。該列中的所有數據均爲空。數據庫中有30GB的空間。Teradata刪除列返回「沒有更多空間」
當我嘗試刪除列時,它說「沒有更多的數據庫XY空間」。爲什麼這樣的行動需要這麼多空間?
這可能會發生各種原因。數據庫中的某個AMP可能已滿,這可能會導致該錯誤,即使進行了小的表更改。
嘗試運行下面的SQL查詢空間
select VProc, CurrentPerm, MaxPerm
from dbc.DiskSpace
where DatabaseName='XY';
也,你應該檢查你的主索引是在這個非常大的表哪一列。如果表格未正確傾斜,則在嘗試更改表格或通過針對該表格運行查詢時,還可能遇到空間問題。
對於其他建議,我發現了一個體面的文章,您可能想要調查什麼樣的事情,當「沒有更多的數據庫空間」錯誤發生時 - Teradata SQL Tutorial。一些建議包括:
所有的AMP都很好,大約有2/3的空間用完,並且平均分配。偏移因子是1 – 2013-05-24 14:33:27
嘗試刪除完全爲空值的varchar(50)列。同樣的結果 – 2013-05-14 09:24:05
你可以發佈表結構嗎?運行下面的sql'show table your_table' – ChrisCamp 2013-05-24 14:55:56
這是商業祕密 – 2013-05-31 09:53:26