Oracle 10g 對(duì)象 默認(rèn) ITL 數(shù)量 測(cè)試 |
發(fā)布時(shí)間: 2012/7/10 17:40:16 |
Oracle 的每個(gè)Block上都有一個(gè)部分,叫做ITL,其用來(lái)保存事務(wù)的信息。 對(duì)象的ITL數(shù)由對(duì)象的initrans 和 maxtrans 參數(shù)決定,Oracle 官方文檔中記載:initrans 的默認(rèn)值是1,maxtrans 是255. 實(shí)際上任何block中的ITL 都是可以根據(jù)需要?jiǎng)討B(tài)增長(zhǎng)的,只要block里還有足夠的空間。ITL的最大數(shù)限制是255,實(shí)際上其大小受data block的大小決定。 在Oracle 10g之后的版本,對(duì)于8KB的block size,最大的ITL數(shù)只能是169.
[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
從這個(gè)語(yǔ)句我們可以判斷該表使用了一個(gè)block:94658。
--確認(rèn)block 存在具體datafile編號(hào): 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,確認(rèn)ITL數(shù)量: 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
這里確實(shí)是2條ITL信息,F(xiàn)在我們看一下表默認(rèn)的創(chuàng)建參數(shù)值:
SQL> set long 2000000 SQL> set pagesize 0 SQL> executedbms_metadata.set_transform_param(dbms_metadata.session_transform,'storage',false); --該語(yǔ)句是在會(huì)話級(jí)別設(shè)置不顯示某些屬性,讓我們的返回結(jié)果看上去更簡(jiǎn)潔。
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" --注意這里返回的結(jié)果:initrans 是1. 因此也即使說(shuō)即使我們的數(shù)據(jù)字典里ITL初始化值是1,但在實(shí)際創(chuàng)建時(shí)使用的ITL數(shù)為2. SQL> executedbms_metadata.set_transform_param(dbms_metadata.session_transform,'default'); PL/SQL procedure successfully completed. --還原設(shè)置 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |