Oracle10g对象默认ITL数量测试

版权声明:站在巨人的肩膀上,才可以看的更高更远。 https://blog.csdn.net/u011078141/article/details/88729195

原 Oracle 10g 对象 默认 ITL 数量 测试https://blog.csdn.net/tianlesoftware/article/details/7640766版权声明: https://blog.csdn.net/tianlesoftware/article/details/7640766

  Oracle 的每个Block上都有一个部分,叫做ITL,其用来保存事务的信息。 有关ITL的说明参考:
OraceITL(Interested Transaction List) 说明
http://www.cndba.cn/Dave/article/1373
  对象的ITL数由对象的initrans 和 maxtrans 参数决定,Oracle 官方文档中记载:initrans 的默认值是1,maxtrans 是255. 实际上任何block中的ITL 都是可以根据需要动态增长的,只要block里还有足够的空间。ITL的最大数限制是255,实际上其大小受data block的大小决定。 在Oracle 10g之后的版本,对于8KB的block size,最大的ITL数只能是169.
  Oracle Table创建参数 说明
http://blog.csdn.net/tianlesoftware/article/details/4954417
  Oracle之前版本中,表的initrans参数默认值是1,但是最近的版本中Oracle改成2,即使数据字典还是显示为1.
  下面我们在Oracle10.2.0.4 的环境下测试一下这个默认值到底是多少。
  [oracle@localhost ~]$ sqlplus / as sysdba;
  SQL*Plus: Release 10.2.0.4.0 - Productionon 星期四 6月 7 09:37:32 2012
  Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
  Connected to:
Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production
With the Partitioning, Data Mining and RealApplication Testing options
  SQL> create table anqing(id number,namevarchar2(20));
Table created.
SQL> insert into anqingvalues(1,'tianlesoftware');
1 row created.
SQL> commit;
Commit complete.
  SQL> select distinctdbms_rowid.rowid_block_number(rowid) from anqing;
DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
------------------------------------
                               94658
  从这个语句我们可以判断该表使用了一个block:94658。
  --确认block 存在具体datafile编号:
SQL> selectdbms_rowid.rowid_relative_fno(rowid) file_id,dbms_rowid.rowid_block_number(rowid)block_id from anqing;
    FILE_ID   BLOCK_ID
---------- ----------
        1      94658
    --dump 该Block,确认ITL数量:
SQL> alter system dump datafile 1 block94658;
System altered.
  --查看trace 文件:
SQL> oradebug setmypid
Statement processed.
SQL> oradebug tracefile_name
/oradata/XEZF/admin/udump/xezf_ora_31544.trc
    这里确实是2条ITL信息。现在我们看一下表默认的创建参数值:
  SQL> set long 2000000
SQL> set pagesize 0
SQL> executedbms_metadata.set_transform_param(dbms_metadata.session_transform,'storage',false);
--该语句是在会话级别设置不显示某些属性,让我们的返回结果看上去更简洁。
  PL/SQL procedure successfully completed.
  SQL> selectdbms_metadata.get_ddl('TABLE','ANQING','SYS') from dual;
   CREATE TABLE "SYS"."ANQING"
  (    "ID" NUMBER,
       "NAME" VARCHAR2(20)
   )
PCTFREE 10 PCTUSED 40
INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
TABLESPACE "SYSTEM"
  --注意这里返回的结果:initrans 是1. 因此也即使说即使我们的数据字典里ITL初始化值是1,但在实际创建时使用的ITL数为2.
    SQL> executedbms_metadata.set_transform_param(dbms_metadata.session_transform,'default');
PL/SQL procedure successfully completed.
--还原设置
    更多查看Oracle 对象源码参考:
Oracle 查看 表 存储过程 触发器 函数 等对象定义语句的方法
http://www.cndba.cn/Dave/article/1158
        -------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
QQ:492913789
Email:[email protected]
Blog:  http://www.cndba.cn/dave
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
    -------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----
DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  
DBA 超级群:63306533(满);  DBA4 群:83829929   DBA5群: 142216823
DBA6 群:158654907    DBA7 群:172855474   DBA总群:104207940https://img-blog.csdnimg.cn/20190217105710569.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEwNzgxNDE=,size_16,color_FFFFFF,t_70《算法导论 第三版英文版》_高清中文版.pdf
https://pan.baidu.com/s/17D1kXU6dLdU0YwHM2cvNMw
《深度学习入门:基于Python的理论与实现》_高清中文版.pdf
https://pan.baidu.com/s/1IeVs35f3gX5r6eAdiRQw4A
《深入浅出数据分析》_高清中文版.pdf
https://pan.baidu.com/s/1GV-QNbtmjZqumDkk8s7z5w
《Python编程:从入门到实践》_高清中文版.pdf
https://pan.baidu.com/s/1GUNSg4mdpeOf1LC_MjXunQ
《Python科学计算》_高清中文版.pdf
https://pan.baidu.com/s/1-hDKhK-7rDDFll_UFpKmpw

猜你喜欢

转载自blog.csdn.net/u011078141/article/details/88729195