小編給大家分享一下數據庫中大表刪除字段慢的原因有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
專注于為中小企業(yè)提供網站設計制作、網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)臨泉免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。
由于生產環(huán)境,用的是DG架構,因此在數據庫同事的協(xié)助下,利用DG備庫snapshot的功能,在生產環(huán)境,真實操作了一次,雖然和主庫操作,唯一不同的是,沒有請求的壓力,相當于停了應用,但還是能說明些問題。
整個刪除操作,執(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強制關閉數據庫(如果用shutdown immediate就看不到效果,它會等到執(zhí)行完畢才會關閉數據庫)
3. 重新啟動數據庫,查看test1表,報錯,
4. 繼續(xù)刪除未刪完的列
ALTER TABLE test1 DROP COLUMNS continue
5. 執(zhí)行完畢后再次查詢test1表,就OK了
2.可以嘗試邏輯刪除,然后再物理刪除,即線上置為unused,等維護窗口,再刪除這個字段,如下面這篇文章,
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重建表,間接刪除字段。
針對這個問題,我們采用的,算是第五種方法,即不動這字段,作為備份字段,未來新需求要增加字段,就直接改這字段,當然這是有些前提的,
1. 應用中對該字段的引用,需要刪除,例如insert操作,需要刪除這個字段名稱,否則就會出問題。
2. 新增字段的類型,要和這個字段類型兼容,比如這字段是VARCHAR2,新增字段需要DATE,自然不能直接改。
看完了這篇文章,相信你對“數據庫中大表刪除字段慢的原因有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章標題:數據庫中大表刪除字段慢的原因有哪些
文章位置:http://jinyejixie.com/article44/jpdjhe.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、商城網站、用戶體驗、網站設計公司、動態(tài)網站、自適應網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)