Heim >Datenbank >MySQL-Tutorial >Oracle 10g 对象 默认 ITL 数量 测试

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

WBOY
WBOYOriginal
2016-06-07 17:14:551045Durchsuche

Oracle 的每个Block上都有一个部分,叫做ITL,其用来保存事务的信息。 对象的ITL数由对象的initrans 和 maxtrans 参数决定,Or

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.

下面我们在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

 

 

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

 

 

SQL> alter system dump datafile 1 block94658;

System altered.

 

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"

SQL> executedbms_metadata.set_transform_param(dbms_metadata.session_transform,'default');

PL/SQL procedure successfully completed.

--还原设置

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn