溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫中大表刪除字段慢的原因有哪些

發(fā)布時間:2021-11-09 13:41:25 來源:億速云 閱讀:175 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫

小編給大家分享一下數(shù)據(jù)庫中大表刪除字段慢的原因有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

由于生產(chǎn)環(huán)境,用的是DG架構(gòu),因此在數(shù)據(jù)庫同事的協(xié)助下,利用DG備庫snapshot的功能,在生產(chǎn)環(huán)境,真實操作了一次,雖然和主庫操作,唯一不同的是,沒有請求的壓力,相當(dāng)于停了應(yīng)用,但還是能說明些問題。

整個刪除操作,執(zhí)行時間,大約是30分鐘,通過10046的trace,看見等待事件,主要是下面這種,

這篇文章提到了這個錯誤,

https://blog.csdn.net/u011116642/article/details/51540314

有人還做了測試,

1. 將列置為unused

ALTER TABLE test1 SET UNUSED COLUMN Tablespace_name;

2. 刪除unused列

ALTER TABLE test1 DROP UNUSED COLUMN CHECKPOINT 5;

在未執(zhí)行完畢前,用shutdown abort強(qiáng)制關(guān)閉數(shù)據(jù)庫(如果用shutdown immediate就看不到效果,它會等到執(zhí)行完畢才會關(guān)閉數(shù)據(jù)庫)

3. 重新啟動數(shù)據(jù)庫,查看test1表,報錯,

數(shù)據(jù)庫中大表刪除字段慢的原因有哪些

4. 繼續(xù)刪除未刪完的列

ALTER TABLE test1 DROP COLUMNS continue

5. 執(zhí)行完畢后再次查詢test1表,就OK了

2.可以嘗試邏輯刪除,然后再物理刪除,即線上置為unused,等維護(hù)窗口,再刪除這個字段,如下面這篇文章,

https://blog.csdn.net/caimaohua/article/details/4264040

3. 使用在線重定義,刪除字段,如下文章所介紹,

http://m.blog.itpub.net/17203031/viewspace-772500/

https://blog.csdn.net/qq_33879355/article/details/78578175

4. 如果有停機(jī)時間,可以采用CTAS重建表,間接刪除字段。

針對這個問題,我們采用的,算是第五種方法,即不動這字段,作為備份字段,未來新需求要增加字段,就直接改這字段,當(dāng)然這是有些前提的,

1. 應(yīng)用中對該字段的引用,需要刪除,例如insert操作,需要刪除這個字段名稱,否則就會出問題。

2. 新增字段的類型,要和這個字段類型兼容,比如這字段是VARCHAR2,新增字段需要DATE,自然不能直接改。

看完了這篇文章,相信你對“數(shù)據(jù)庫中大表刪除字段慢的原因有哪些”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI