Basic statement IO analysis

From DB Optimizer
Jump to: navigation, search

Oracle IO Analysis basic

   TCNT SQL_ID        CNT AAS  OBJN OBJ             P1 TABLESPAC
   ---- ------------- --- --- ----- --------------- -- ----------
     30 0yas01u2p9ch4   1 .01 53113 ITEM_PRODUCT_IX  7 SOEINDEX
                        1 .01 53079 ORDER_ITEMS_UK   7 SOEINDEX 
                       28 .16 53112 ITEM_ORDER_IX    7 SOEINDEX
     58 6v6gm0fd1rgrz   4 .02 54533 WAIT_OBJECTS     1 SYSTEM
                       54 .30     0 0                2 UNDOTBS1


   DEF v_minutes=60
   col block_type for a18
   col obj for a20
   col objn for 999999
   col otype for a15
   col event for a15
   col blockn for 999999
   col p1 for 9999
   col tablespace_name for a15
   col f_minutes new_value v_minutes
   select &minutes f_minutes from dual;
   break on sql_id on tcnt
   select
          sum(cnt) over ( partition by io.sql_id order by sql_id ) tcnt,
          io.sql_id,
          io.cnt cnt,
          io.aas aas,
          --io.event event,
          io.objn objn,
          io.obj obj,
          io.p1 p1,
          f.tablespace_name tablespace_name
   from
   (
     select
           sql_id,
           count(*) cnt,
           round(count(*)/(&v_minutes*60),2) aas,
           CURRENT_OBJ# objn,
           nvl(o.object_name,decode(CURRENT_OBJ#,-1,0,CURRENT_OBJ#)) obj,
           o.object_type otype,
           ash.p1
      from v$active_session_history ash
           ,all_objects o
      where ( event like 'db file s%' or event like 'direct%' )
         and o.object_id (+)= ash.CURRENT_OBJ#
         and sample_time > sysdate - &v_minutes/(60*24)
      group by
          CURRENT_OBJ#,
          o.object_name ,
          o.object_type ,
          ash.p1,
          sql_id
   ) io,
      dba_data_files f
   where
      f.file_id = io.p1
   Order by tcnt, io.sql_id, io.cnt
   /