10053事件是oracle提供的用于跟踪sql语句成本计算的内部事件,
它能记载CBO模式下oracle优化器如何计算 sql成本,生成相应的执行计划。如何设置10053事件设置本session的10053开启:Alter session set events’10053 trace name context forever[,level {1/2}]’;关闭:Alter session set events’10053 trace name context off’;设置其他session的10053开启:SYS.DBMS_SYSTEM.SET_EV (<sid>, <serial#>, 10053, {1|2}, '')关闭:SYS.DBMS_SYSTEM.SET_EV (<sid>, <serial#>, 10053,0, '')跟其他跟踪事件不同,10053提供了两个跟踪级别,但是级别2的跟踪信息比级别1少(其他跟踪事件如10046跟踪级别越高信息越多),跟踪信息将被记录到user_dump_dest目录底下。注意,要实现跟踪必须满足两个条件:sql语句必须被hard parse并且必须使用CBO优化器模式。如果sql语句已经被parse过,那么10053不生成跟踪信息。如果你使用RULE优化器,那么10053 也不会生成跟踪信息。***************************************BASE STATISTICAL INFORMATION***************************************Table stats Table: TEST Alias: TEST TOTAL :: CDN: 999 NBLKS: 13 AVG_ROW_LEN: 86-- Index stats INDEX NAME: IDX_OBJECT_ID COL#: 4 TOTAL :: LVLS: 1 #LB: 3 #DK: 999 LB/K: 1 DB/K: 1 CLUF: 582_OPTIMIZER_PERCENT_PARALLEL = 0***************************************对于TABLE:Trace label dba_tables column describeCDN NUM_ROWS The cardinality = number of rows of the tableNBLKS BLOCKS The number of blocks below the high water markAVG_ROW_LEN AVG_ROW_LEN The average length of a row对于INDEX:Trace label dba_indexes column describeLVLS BLEVEL The height of the index b-tree#LB LEAF_BLOCKS The number of leaf blocks#DK DISTINCT_KEYS The number of distinct keys of the indexLB/K AVG_LEAF_BLOCKS_PER_KEY The average number of leaf blocks per keyDB/K AVG_DATA_BLOCKS_PER_KEY The average number of data blocks per keyCLUF CLUSTERING_FACTOR The clustering factor of the index验证如下:SQL> select TABLE_NAME, 2 NUM_ROWS "CDN", 3 BLOCKS "NBLKS", 4 AVG_ROW_LEN "AVG_ROW_LEN " 5 From dba_tables 6 where table_name = 'TEST' 7 and owner = 'SYS';TABLE_NAME CDN NBLKS AVG_ROW_LEN------------------------------ ---------- ---------- ------------TEST 999 13 86SQL> select index_name, 2 BLEVEL "LVLS", 3 LEAF_BLOCKS "#LB", 4 DISTINCT_KEYS "#DK", 5 AVG_LEAF_BLOCKS_PER_KEY "LB/K", 6 AVG_DATA_BLOCKS_PER_KEY "DB/K", 7 CLUSTERING_FACTOR "CLUF" 8 from dba_indexes 9 where owner = 'SYS'10 AND index_name = 'IDX_OBJECT_ID';INDEX_NAME LVLS #LB #DK LB/K DB/K CLUF------------------------------ ---------- ---------- ---------- ---------- ---------- - ---------IDX_OBJECT_ID 1 3 999 1 1 582