溫馨提示×

溫馨提示×

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

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

如何理解Oracle的INITRANS與事務

發(fā)布時間:2021-11-29 14:43:39 來源:億速云 閱讀:487 作者:柒染 欄目:關系型數(shù)據(jù)庫

本篇文章給大家分享的是有關如何理解Oracle的INITRANS與事務,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Oracle的INITRANS與事務

每個塊都有一個塊首部。這個塊首部中有一個事務表。事務表中會建立一些條目來描述哪些事務將塊上的哪些行/元素鎖定。這個事務表的初始大小由對象的INITRANS 設置指定。對于表,這個值默認為2(索引的INITRANS 也默認為2)。事務表會根據(jù)需要動態(tài)擴展,最大達到MAXTRANS 個條目(假設塊上有足夠的自由空間)。所分配的每個事務條目需要占用塊首部中的23~24 字節(jié)的存儲空間。注意,對于Oracle 10g,MAXTRANS 則會忽略,所有段的MAXTRANS 都是255。

由于oracle塊里有一個PCT_free的概念,即oracle會預留塊大小的10%作為緩沖,當修改oracle的事務增加時,事務槽向下增長,當更新oracle塊的數(shù)據(jù)時,數(shù)據(jù)向上增長,PCT_free的空間被壓縮。這里我們只是看INITRANS的作用,所以pctfree 0

SCOTT@hyyk> create table t3 (id int, num int ) INITRANS 1 pctfree 0 ;

SCOTT@hyyk> select TABLE_NAME,STATUS,PCT_FREE,PCT_USED,INI_TRANS,MAX_TRANS,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE from user_tables where table_name='T3';

如何理解Oracle的INITRANS與事務

可以看到pctfree 0 參數(shù)生效 這里的INITRANS初始值是1

SCOTT@hyyk> insert into t3 values(1,1) ;

SCOTT@hyyk> insert into t3 values(2,2);

SCOTT@hyyk> insert into t3 values(3,3);

SCOTT@hyyk> commit;

SCOTT@hyyk> select id,num ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from T3;

    ID      NUM       FILE#     BLOCK#

---------- ---------- ---------- ----------

     1        1           4    581

     2        2           4    581

     3        3           4    581

可以看到插入的三行數(shù)據(jù)都在4號文件的581塊

會話1

SCOTT@hyyk> update t3 set num=11 where id =1;  //這里不提交

查看事務,可以發(fā)現(xiàn)已經開始一個事務,占據(jù)了一個事務槽080011007A050000

如何理解Oracle的INITRANS與事務

會話2

SCOTT@hyyk> update t3 set num=11 where id =2;

1 row updated.  //發(fā)現(xiàn)這里可以插入

這個事務表的初始大小由對象的INITRANS 設置指定。對于表,這個值默認為2(索引的INITRANS 也默認為2)

如何理解Oracle的INITRANS與事務再次查看事務,又開始了一個事務,事務xid 06001B0075050000

會話三

SCOTT@hyyk> update t3 set num=11 where id =3

...等待

因為事務表沒有槽位

以上就是如何理解Oracle的INITRANS與事務,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI