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

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

專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)臨泉免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

由于生產(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強制關(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. 如果有停機時間,可以采用CTAS重建表,間接刪除字段。

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

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

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

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

文章標(biāo)題:數(shù)據(jù)庫中大表刪除字段慢的原因有哪些
文章位置:http://muchs.cn/article44/jpdjhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機商城網(wǎng)站、用戶體驗、網(wǎng)站設(shè)計公司、動態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)