ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ITL与pctfree

ITL与pctfree

原创 Linux操作系统 作者:lijiebin 时间:2010-07-28 09:50:32 0 删除 编辑


某些生产系统ITL 的等待比较多。

dba_tables 中INI_TRANS参数默认值为1,这个参数是不生效的,实际默认情况每个ini_trans为2


就是每个块中默认有两个事物槽,如果该块有update或者delete等操作,通过ITL,去更新undo相关块的内容。
2个事物槽,只能支持一个块上的2个事物。

 

如果该块有空闲,则可以自动创建新的ITL。

没有空闲空间的情况就会发生ITL等待,前两个事物的ITL必须释放后,第三个事物才能获得ITL。

我试验的情况为pctfree 为0 ,即该块完全被使用
创建一个表

0924:15i:19 SQL> create table test(id int) pctfree 0;
 
Table created
 
Executed in 0.031 seconds
 

插入200条数据
0924:15i:30 SQL> begin
              2  for i in 1..200 loop
              3  insert into test values(i);
              4  end loop;
              5  end;
              6  /
 
PL/SQL procedure successfully completed
 
Executed in 0.172 seconds
 
0924:15i:58 SQL> exec dbms_stats.gather_table_stats('JIEBIN','TEST');
 
PL/SQL procedure successfully completed
 
Executed in 0.141 seconds
 

表test占用3个块。INI_TRNAS为1(实际不生效,值为2),表示该块如果被填满,只能有两个事物。


0924:16i:21 SQL> select * from dba_tables where wner='JIEBIN';
 
OWNER                          TABLE_NAME                     TABLESPACE_NAME                CLUSTER_NAME                   IOT_NAME                       STATUS     PCT_FREE   PCT_USED  INI_TRANS  MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS LOGGING BACKED_UP   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE                                   INSTANCES                                CACHE                TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE     TEMPORARY SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION        SKIP_CORRUPT MONITORING CLUSTER_OWNER                  DEPENDENCIES COMPRESSION DROPPED
------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ -------- ---------- ---------- ---------- ---------- -------------- ----------- ----------- ----------- ------------ ---------- --------------- ------- --------- ---------- ---------- ------------ ---------- ---------- ----------- ------------------------- ------------------- ---------------------------------------- ---------------------------------------- -------------------- ---------- ----------- ------------- ----------- ------------ --------- --------- ------ ----------- ------------ ------------ ---------- --------------- ------------ ---------- ------------------------------ ------------ ----------- -------
JIEBIN                         JIEBIN2                        SYSTEM                                                                                       VALID            10         40          1        255          65536                       1  2147483645                       1               1 YES     N                                                                                                                                     1                                        1                                   N                ENABLED                              NO                       N         N         NO     DEFAULT     DISABLED     NO           NO                         DISABLED     YES                                       DISABLED     DISABLED    NO
JIEBIN                         P_TEST                                                                                                                      VALID                                                                                                                                                   N                                                                                                                                     1                                        1                                   N                ENABLED                              YES                      N         N         NO                 DISABLED     NO           NO                         DISABLED     YES                                       DISABLED                 NO
JIEBIN                         TEST                           SYSTEM                                                                                       VALID             0         40          1        255          65536                       1  2147483645                       1               1 YES     N               2000          3            0          0          0           3                         0                   0          1                                        1                                   N                ENABLED           2000 2010-07-28 17 NO                       N         N         NO     DEFAULT     DISABLED     YES          NO                         DISABLED     YES                                       DISABLED     DISABLED    NO
 
3 rows selected
 
Executed in 0.594 seconds
select dbms_rowid.ROWID_BLOCK_NUMBER(rowid),count(*) from test group by dbms_rowid.ROWID_BLOCK_NUMBER(rowid);
 
1024:29i:27 SQL>
 
DBMS_ROWID.ROWID_BLOCK_NUMBER(   COUNT(*)
------------------------------ ----------
                        192843        734
                        192844        532
                        192842        734
 
3 rows selected
 
Executed in 0.453 seconds
 
表test占用了3个数据块,192842,192843数据块是满的,如果itl用完以后,无法创建新的itl

第一个session
update test set id=2 where DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)=192842 and dbms_rowid.ROWID_ROW_NUMBER(rowid)=1  ;
第二个session
update test set id=2 where DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)=192842 and dbms_rowid.ROWID_ROW_NUMBER(rowid)=2  ;

第三个session
update test set id=2 where DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)=192842 and dbms_rowid.ROWID_ROW_NUMBER(rowid)=3  ;
第四个session
update test set id=2 where DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)=192842 and dbms_rowid.ROWID_ROW_NUMBER(rowid)=4  ;
.
.
.
.
.

第三个session以后都会hang住,直到上面的ITL使用完释放。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8135069/viewspace-669670/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: x$bh
下一篇: 锁与锁等待
请登录后发表评论 登录
全部评论

注册时间:2008-01-10

  • 博文量
    145
  • 访问量
    177218