溫馨提示×

溫馨提示×

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

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

Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED

發(fā)布時間:2020-08-07 12:06:14 來源:ITPUB博客 閱讀:235 作者:sqysl 欄目:關(guān)系型數(shù)據(jù)庫

Oracle12c開始,我們在獲取SQL語句的執(zhí)行計劃時,也會經(jīng)??吹?TABLE ACCESS BY INDEX ROWID BATCHED"操作,那么,這個操作到底是什么意思呢?有什么作用呢?下面我們先看看有關(guān)該操作的官方解釋:


The BATCHED access shown in Step 1 means that the database retrieves a few rowids from the index, and then attempts to access rows in block order to improve the clustering and reduce the number of times that the database must access a block.

這句話的意思是說,該操作是數(shù)據(jù)庫為了從索引中獲取一些rowid,接著,試著按照塊順序存取塊中的數(shù)據(jù)行,以便用來改善聚集效果和減少對一個數(shù)據(jù)塊存取的次數(shù)。

官方解釋的意思就是這樣,但怎么理解呢?之前,當(dāng)我們通過索引獲取的rowid回表獲取相應(yīng)數(shù)據(jù)行時,都是讀一個rowid回表獲取一次相應(yīng)數(shù)據(jù)行,然后,再讀一個rowid,再回表獲取一次相應(yīng)數(shù)據(jù)行。。。,這樣一直讀取完所有所需數(shù)據(jù)。當(dāng)不同rowid對應(yīng)的數(shù)據(jù)行存儲在一個數(shù)據(jù)塊中時,就可能會發(fā)生對同一表數(shù)據(jù)塊的多次讀取,當(dāng)一個索引的聚集因子比較低時,這也是一個必然結(jié)果,從而浪費(fèi)了系統(tǒng)資源。Oracle 12c中該新特性,通過對rowid對應(yīng)的數(shù)據(jù)塊號進(jìn)行排序,然后回表讀取相應(yīng)數(shù)據(jù)行,從而避免了對同一表數(shù)據(jù)塊的多次重復(fù)讀取,從而改善了SQL語句的性能,降低了資源消耗。該特性通過隱藏參數(shù)“_optimizer_batch_table_access_by_rowid”控制,默認(rèn)值為true,即為開啟。

向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