Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 10g 对象 默认 ITL 数量 测试

Oracle 的每个Block上都有一个部分,叫做ITL,其用来保存事务的信息。  对象的ITL数由对象的initrans 和 maxtrans 参数决定,Oracle 官方文档中记载:initrans 的默认值是1,maxtrans 是255. 实际上任何block中的ITL 都是可以根据需要动态增长的,只要block里还有足够的空间。ITL的最大数限制是255,实际上其大小受data block的大小决定。 在Oracle 10g之后的版本,对于8KB的block size,最大的ITL数只能是169.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 2012Copyright (c) 1982, 2007, Oracle.  All Rights Reserved. Connected to:Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - ProductionWith 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 setmypidStatement processed.SQL> oradebug tracefile_name/oradata/XEZF/admin/udump/xezf_ora_31544.trc  这里确实是2条ITL信息。现在我们看一下表默认的创建参数值: SQL> set long 2000000 SQL> set pagesize 0SQL> 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 查看 使用 UNDO 段的事务 脚本Oracle CRS的管理与维护相关资讯      Oracle高级培训 
  • delete表的数据后恢复  (08/30/2012 08:59:58)
  • 使用ASH信息,发现高CPUsession  (08/14/2012 07:21:32)
  • 如何阅读Oracle Errorstack Output  (08/14/2012 07:15:47)
  • Oracle Apps Patching:adpatch(  (08/16/2012 15:41:37)
  • 话说V$SQL_MONITOR  (08/14/2012 07:19:54)
  • Oracle Apps DBA工具:ADADMIN使用  (08/14/2012 07:00:09)
本文评论 查看全部评论 (0)
表情: 姓名: 字数