Oracle 10g 對象 預設 ITL 數量 測試

來源:互聯網
上載者:User

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.

--還原設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.