Sybase
在包含超過 2500 萬條記錄的大表上更改表修改列
我想修改包含超過 2500 萬條記錄的大表上的列。我正在使用 sybase 12.5.4。我已經閱讀了這些文章
和
我目前的策略是
- 刪除所有非聚集索引
- 刪除聚集索引
- Alter table modifcy column varchar (32) – 列目前為 char(20)
- 重新創建聚集索引
- 重新創建非聚集索引
是否有意義。有更快的方法嗎?
編輯 :
- 表數據大小:16.7 GB
- 總行數:25835155
- 平均行大小:0.64 KB
- 8 非聚集索引
- 是的,我要更改的列是 2 列 NC 索引中的第二列
您應該只需要刪除並重新創建受影響的 NC 索引。
話雖如此,在測試伺服器上,您可以看到這樣做與刪除上面所有索引的策略相比的差異。
我認為刪除/創建單個索引總體上會更快,因為否則數據將移動兩次:一次 char 到 varchar,另一個用於建構聚集索引。然後你有 NC 創建成本。