始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Oracle 10g 对象 默认 ITL 数量 测试

发布时间:  2012/9/4 17:31:58

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 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.

--还原设置


 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线