您好,登錄后才能下訂單哦!
在創(chuàng)建一個(gè)表的時(shí)候如若未指定任何(physical_attributes_clause )參數(shù):
If you omit this clause, then Oracle Database sets PCTFREE
to 10, PCTUSED
to 40, and INITRANS
to 1.
oracle 已經(jīng)棄用了MAXTRANS 參數(shù),該參數(shù)默認(rèn)是自動(dòng)調(diào)節(jié)的,最大值為255.
在數(shù)據(jù)庫(kù)遇見(jiàn)enq: TX - allocate ITL entry:
解決方法
系統(tǒng)中存在少量的ITL等待是正常的,只有當(dāng)其對(duì)系統(tǒng)造成了影響(如awr report中,在top 5 events中發(fā)現(xiàn)該事件),或者對(duì)應(yīng)用造成了直接影響(如死鎖,再如發(fā)現(xiàn)某一會(huì)話存在大量等待ITL),我們才需要采取相應(yīng)手段進(jìn)行處理。針對(duì)導(dǎo)致ITL等待不同原因,我們要采取不同的手段來(lái)處理。
INITRANS不足
這種情況只會(huì)出現(xiàn)的表的數(shù)據(jù)塊上,如我們上述的例子:數(shù)據(jù)塊上的ITL數(shù)量并沒(méi)有達(dá)到MAX TRANS的限制,可用空間小于24字節(jié)。發(fā)生這種情況的表通常會(huì)被經(jīng)常UPDATE,從而造成預(yù)留空間(PCTFREE)被填滿。如果我們發(fā)現(xiàn)這類(lèi)ITL等待對(duì)系統(tǒng)已經(jīng)造成影響,可以通過(guò)增加表的INITRANS或者PCTFREE來(lái)解決(視該表上的并發(fā)事務(wù)量而定,通常,如果并發(fā)量高,建議優(yōu)先增加INITRANS,反之,則優(yōu)先考慮增加PCTFREE)。
要注意的一點(diǎn)是,如果是使用ALTER TABLE的方式修改這2個(gè)參數(shù)的話,只會(huì)影響新的數(shù)據(jù)塊,而不會(huì)改變已有數(shù)據(jù)的數(shù)據(jù)塊——要做的這一點(diǎn),需要將數(shù)據(jù)導(dǎo)出/導(dǎo)入、重建表。
MAXTRANS不足
這一情況是由高并發(fā)引起的:同一數(shù)據(jù)塊上的事務(wù)量已經(jīng)超出了其實(shí)際允許的ITL數(shù)(如前所述,ITL slot所占空間不能超過(guò)數(shù)據(jù)塊大小的一半,如8K的限制為169)。因此,要解決這類(lèi)問(wèn)題就需要從應(yīng)用著手,減少事務(wù)的并發(fā)量;長(zhǎng)事務(wù),在保證數(shù)據(jù)完整性的前提下,增加commit的頻率,修改為短事務(wù),減少資源占用事件。而對(duì)于OLAP系統(tǒng)來(lái)說(shuō)(例如,其存在高并發(fā)量的數(shù)據(jù)錄入模塊),可以考慮增大數(shù)據(jù)塊大小。
遞歸事務(wù)ITL爭(zhēng)用
這一類(lèi)等待通常是系統(tǒng)存在并發(fā)事務(wù)頻繁插入、修改數(shù)據(jù)導(dǎo)致,其往往伴隨"enq: TX - index contention"事件出現(xiàn)。根本解決方法就是要減少索引分裂,如使用大數(shù)據(jù)塊、減少索引中效率低、使用率低的字段等。
INITRANS integer:
Specify the initial number of concurrent transaction entries allocated within each data block allocated to the database object. This value can range from 1 to 255 and defaults to 1, with the following exceptions:
The default INITRANS value for a cluster is 2 or the default INITRANS value of the tablespace in which the cluster resides, whichever is greater.
The default value for an index is 2.
In general, you should not change the INITRANS value from its default.
Each transaction that updates a block requires a transaction entry in the block. This parameter ensures that a minimum number of concurrent transactions can update the block and helps avoid the overhead of dynamically allocating a transaction entry.
The INITRANS parameter serves the same purpose in the statements that create and alter tables, partitions, clusters, indexes, materialized views, and materialized view logs.
MAXTRANS Parameter:
MAXTRANS 《=========已經(jīng)廢棄的了該參數(shù)。
In earlier releases, the MAXTRANS parameter determined the maximum number of concurrent update transactions allowed for each data block in the segment. This parameter has been deprecated. Oracle now automatically allows up to 255 concurrent update transactions for any data block, depending on the available space in the block.
Existing objects for which a value of MAXTRANS has already been set retain that setting. However, if you attempt to change the value for MAXTRANS, Oracle ignores the new specification and substitutes the value 255 without returning an error.
內(nèi)容摘自:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。