久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

刪除一張大表時(shí)為什么undo占用空間接近原表兩倍

共計(jì) 899 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。

這篇文章將為大家詳細(xì)講解有關(guān)刪除一張大表時(shí)為什么 undo 占用空間接近原表兩倍,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

概述

Oracle 中,undo 是保存記錄的前鏡像的,我理解如果 delete from  t;那產(chǎn)生的 undo 應(yīng)該和 t 表的大小差不多,但測(cè)試結(jié)果卻差的很遠(yuǎn),undo 產(chǎn)生的量基本上是 t 表大小的兩倍,不知道為什么,難道我理解錯(cuò)了? 下面看下這個(gè)奇怪的現(xiàn)象。

1. delete 了 8 個(gè)小時(shí)

2. 原表大小

可以發(fā)現(xiàn)原表也就 16.5G,需要?jiǎng)h的數(shù)據(jù)是 9G。

3. 查看 undo 塊

這里忘記截圖了,但是是有 300 多萬(wàn)個(gè)塊,查看對(duì)應(yīng)占用的 undo 空間是占了 30 多 G,遠(yuǎn)遠(yuǎn)超過(guò)原表的大小。

為什么 undo 會(huì)占用這么多空間?

從原理上講,UNDO 表空間,有四個(gè)作用:

回滾事務(wù);

一致性讀;

事務(wù)恢復(fù);

閃回查詢

請(qǐng)教楊長(zhǎng)老得到的一些信息:

對(duì)于回滾事務(wù),他保存的是修改值的前鏡像,注意,不是修改的數(shù)據(jù)塊,或者整行記錄的鏡像。

除了考慮表大小之外,還有表上索引的總大小,是否存在觸發(fā)器,物化試圖日志等等。另外,看看數(shù)據(jù)庫(kù)級(jí)的 supplemental log 是否打開。

undo 是記錄事物修改前鏡像的,而 delete 的前鏡像就是表中存儲(chǔ)的數(shù)據(jù)。當(dāng)然有一些可能會(huì)導(dǎo)致前鏡像比表中的原始數(shù)據(jù)大,比如壓縮,11g 后存在的非空默認(rèn)值。

另外,undo 的記錄一定有一些額外的成本,比如 rowid,scn 等信息,如果表中行記錄本身很小,那么這些成本就會(huì)顯得非常突出。

如果要非常精確地知道,多出來(lái)的每一個(gè)信息是多少,確實(shí)有些困難,但通過(guò)這個(gè)實(shí)驗(yàn),至少能了解到,一次 delete 操作刪除的容量,UNDO 為了保存前鏡像,需要占據(jù)的容量,要比他多得多,這就是為什么不推薦一次 delete 操作刪除過(guò)多數(shù)據(jù)的原因之一。

總之,對(duì)于 delete 大量數(shù)據(jù)的情況一定要分批進(jìn)行,寧愿時(shí)間花多點(diǎn),風(fēng)險(xiǎn)也會(huì)少很多,避免意外導(dǎo)致回滾而造成的數(shù)據(jù)庫(kù)卡頓。

關(guān)于刪除一張大表時(shí)為什么 undo 占用空間接近原表兩倍就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-18發(fā)表,共計(jì)899字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 曲靖市| 平罗县| 沿河| 乐东| 方城县| 东光县| 呼伦贝尔市| 札达县| 沽源县| 隆德县| 远安县| 桐庐县| 侯马市| 黔西县| 绩溪县| 长白| 岳池县| 北安市| 荔波县| 东辽县| 陆良县| 大丰市| 历史| 沁阳市| 岗巴县| 阿瓦提县| 绩溪县| 常宁市| 巩留县| 泰和县| 三河市| 鄂托克前旗| 台湾省| 广饶县| 奉新县| 河间市| 江达县| 灵山县| 上杭县| 满洲里市| 新巴尔虎右旗|