Statspack collection

Hi,
Will enabling statspack at level-7 result in generation of more redologs and will it lead to performance issue or database hang? This is Oracle 9i on AIX. There a no ORA errros in any logs showing that DB is hanging and it have some issues, but not allowing new connections. Can someone help.
Thanks in advance.

Handle:      user12241421
Status Level:      Newbie
Registered:      Nov 18, 2009
Total Posts:      29
Total Questions:      14 (8 unresolved)
so many questions & so few answers.
Will enabling statspack at level-7 result in generation of more redologs and will it lead to performance issue or database hang?NO!
This is Oracle 9i on AIX.
There a no ORA errros in any logs showing that DB is hanging and it have some issues, but not allowing new connections. Somebody must get erorr.
post tail end of alert_SID.log
Can someone help.COPY & PASTE lines below
sqlplus
/ as sysdba
select * from v$version;
exit
post results back here

Similar Messages

  • STATSPACK Collection Level

    Hi,
    this is Top 5 Timed Events in statpack report :
    Top 5 Timed Events
    ~~~~~~~~~~~~~~~~~~                                                      % Total
    Event                                               Waits    Time (s) Call Time
    CPU time                                                          122     91.65
    db file sequential read                             1,571           2      1.61
    db file scattered read                              1,174           2      1.59
    log file sequential read                              342           2      1.39
    control file parallel write                           450           2      1.39
    Wait Events  DB/Inst: AKI1/AKI1  Snaps: 5-6but in my statpack report I have not the following two lines :
    db file sequential read                             1,571           2      1.61
    db file scattered read                              1,174           2      1.59Which collect level should I chose for my snapshot to have them ?
    Many thanks.

    db file sequential read
    1,571           2
    1.61
    le scattered read                              1,174
    2      1.59 ich collect level should I chose for my snapshot to
    have them ?If these two events are in top 5 they will be in the list.
    You should check Oracle document,
    Using Statspack
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96533/statspac.htm#34837

  • Package STATSPACK

    Hello folks
    I have the invalid package PERFSTAT.STATSPACK because the error Compilation errors for PACKAGE BODY PERFSTAT.STATSPACK because the errorr: PL/SQL: ORA-00980: synonym translation is no longer valid stats$x$ksppsv sv
    Someone has an idea?
    Tks
    Spaulonci

    It sounds like you upgraded your database but did not upgrade the statspack package.
    Look to see if you have any recent sp data - look in stats$snapshot
    There are upgrade scripts provided in $ORACLE_HOME/rdbms/admin/spup*.sql
    If you are on 10g, try looking at AWR data - it's much like statspack and is enabled by default.
    I usually disable statspack collection after upgrading to 10g and just use AWR data (e.g. dba_hist_*)
    for a standard AWR report run $ORACLE_HOME/rdbms/admin/awrrpt.sql
    Cheers

  • Perfstsat data collection

    How to run perstat data collections to have 10 minute sample periods throughout different times of the day.
    Here is the stats we need to collect running the Oracle database 11.2.0.3 in Linux
    number of CPUs/cores and CPU usage
    RAM configured and used
    Disk Capacity and used
    Disk I/O usage

    schedule a job to run every 10 mts.
    Something like below:
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB ( job_name => 'STATSPACK_COLLECTION',
    job_type => 'STORED_PROCEDURE',
    job_action => 'perfstat.statspack.snap',
    repeat_interval => 'FREQ=MINUTELY;BYMINUTE=10',
    enabled => TRUE,
    comments => 'Statspack Collection'
    END;
    /

  • Difference in data retrieved from sql developer and sqlplus prompt

    SQL> select distinct snap_time from perfstat.stats$idx_stats;
    SNAP_TIME
    21-MAY-07
    05-JUN-07
    but using sql developer
    select distinct snap_time from perfstat.stats$idx_stats;
    SNAP_TIME
    21-MAY-07
    05-JUN-07
    13-JUN-07
    but can anyone explain the difference because it's the same database

    SQL> select distinct snap_time from
    perfstat.stats$idx_stats;
    SNAP_TIME
    21-MAY-07
    05-JUN-07
    but using sql developer
    select distinct snap_time from
    perfstat.stats$idx_stats;
    SNAP_TIME
    21-MAY-07
    05-JUN-07
    13-JUN-07
    but can anyone explain the difference because it's
    the same databaseIt looks to me during the interim between you run the query in sqlplus and SQL Developer, statspack generated a new snapshot.
    Check your DBA_JOBS see if there's any auto statspack collection job.

  • Historical Performance Information in Grid Control

    We have EM Grid Control 10.2.0.3 monitoring a 9.2.0.7 database.
    I am not able to see historical information past one day, especially on screen like "Active Sessions Waiting: User I/O". I checked that the statspack is running at level 6.
    I would be extremely obliged if someone has faced this and resolved the issue.

    First, STATSPACK is independent of anything collected by OEM 10g. Also, STATSPACK collection levels refer more to how much detail is collected, not retention.
    For OEM 10g, defaults are I believe - raw data 7 days, hourly 31 days, daily 1 year. If you want to look behind the scenes as if data is really there, check tables like sysman.mgmt$metric_hourly.

  • Top 20 SQLs

    Can anyone please help me to find out Top 20 SQLs.
    We can have some TOPs from statspack but i want to know if there is any view from which we can find out the desired information.
    If possible please wirte the query also.

    Hi Oraguy,
    Can anyone please help me to find out Top 20 SQLs.You can write your own queries to display the top-n SQL (where executions > xxx), or adjust the STATSPACK collection thresholds:
    http://www.dba-oracle.com/t_statspack_snapshot_top_sql_collection_internals.htm
    An example of one of the SQL reports is seen below. Note the sections marked in red. The SQL must exist in stats$sqlsummary, and must be in this table for both the begin and end snap value.
    select aa, hv
    from ( select /*+ ordered use_nl (b st) */
    decode( st.piece
    , 0
    , lpad(to_char((e.buffer_gets - nvl(b.buffer_gets,0))
    ,'99,999,999,999')
    ,15)||' '||
    lpad(to_char((e.executions - nvl(b.executions,0))
    ,'999,999,999')
    ,12)||' '||
    lpad((to_char(decode(e.executions - nvl(b.executions,0)
    ,0, to_number(null)
    ,(e.buffer_gets - nvl(b.buffer_gets,0)) /
    (e.executions - nvl(b.executions,0)))
    ,'999,999,990.0'))
    ,14) ||' '||
    lpad((to_char(100*(e.buffer_gets - nvl(b.buffer_gets,0))/:gets
    ,'990.0'))
    , 6) ||' '||
    lpad( nvl(to_char( (e.cpu_time - nvl(b.cpu_time,0))/1000000
    , '9990.00')
    , ' '),8) || ' ' ||
    lpad( nvl(to_char( (e.elapsed_time - nvl(b.elapsed_time,0))/1000000
    , '99990.00')
    , ' '),9) || ' ' ||
    lpad(e.old_hash_value,10)||''||
    decode(e.module,null,st.sql_text
    ,rpad('Module: '||e.module,80)||st.sql_text)
    , st.sql_text) aa
    , e.old_hash_value hv
    from stats$sql_summary e
    , stats$sql_summary b
    , stats$sqltext st
    where b.snap_id(+) = :bid
    and b.dbid(+) = e.dbid
    and b.instance_number(+) = e.instance_number
    and b.old_hash_value(+) = e.old_hash_value
    and b.address(+) = e.address
    and b.text_subset(+) = e.text_subset
    and e.snap_id = :eid
    and e.dbid = :dbid
    and e.instance_number = :inst_num
    and e.old_hash_value = st.old_hash_value
    and e.text_subset = st.text_subset
    and st.piece <= &&num_rows_per_hash
    and e.executions > nvl(b.executions,0)
    and 100*(e.buffer_gets - nvl(b.buffer_gets,0))/:gets > &&top_pct_sql
    order by (e.buffer_gets - nvl(b.buffer_gets,0)) desc, e.old_hash_value, st.piece
    where rownum < &&top_n_sql;

  • Collect statspack report failed

    Database version : 9204
    OS: AIX 5.2
    BEGIN STATSPACK.SNAP(i_snap_level=>10); END;
    ERROR at line 1:
    ORA-00001: unique constraint (PERFSTAT.STATS$UNDOSTAT_PK) violated
    ORA-06512: at "PERFSTAT.STATSPACK", line 2228
    ORA-06512: at "PERFSTAT.STATSPACK", line 91
    ORA-06512: at line 1
    what could be the issue? I already referred 279602.1, but doesnot apply to my situation since this is a single instance database.

    Hi;
    In note it says:
    on each instance (or if single instance, ensure two snaps are not running at the same time).
    Also Similar error mention at below link:
    stop automated stats coll
    Regard
    Helios

  • Package.......StatsPack...Error..

    Hi.. i m tuning my Oracle Database, for that i need to install Statspack package, when i compiled package... it returned following error.
    Warning: Package Body created with compilation errors.
    SQL> show error
    Errors for PACKAGE BODY STATSPACK:
    LINE/COL ERROR
    2045/3 PLS-00201: identifier 'SYS.DBMS_SHARED_POOL' must be declared
    2045/3 PL/SQL: Statement ignored
    HOw to solve above error..Please check the following Package, and do help me.
    Note: I m connected perfstat user, no as SYS user.
    create or replace package body STATSPACK as
    /* Define package variables.
    Variables prefixed with p_ are package variables.
    p_snap_id integer; /* snapshot id */
    p_instance_number number; /* instance number */
    p_instance_name varchar2(16); /* instance name */
    p_startup_time date; /* instance startup time */
    p_parallel varchar2(3); /* parallel server */
    p_version varchar2(17); /* Oracle release */
    p_dbid number; /* database id */
    p_host_name varchar2(64); /* host instance is on */
    p_name varchar2(9); /* database name */
    p_new_sga integer; /* Instance bounced since last snap? */
    tmp_int integer; /* initialise defaults */
    p_def_snap_level number default 5; /* default snapshot lvl */
    p_def_session_id number default 0; /* default session id */
    p_def_ucomment varchar2(160) default null;
    p_def_pin_statspack varchar2(10) default 'TRUE';
    p_def_last_modified date default SYSDATE;
    /* Below are the default threshold (_th) values for choosing SQL statements
    to store in the stats$sqlsummary table - these statements will typically
    be the statements using the most resources.
    p_def_num_sql number default 50; /* Num. SQL statements */
    p_def_executions_th number default 100; /* Num. executions */
    p_def_parse_calls_th number default 1000; /* Num. parse calls */
    p_def_disk_reads_th number default 1000; /* Num. disk reads */
    p_def_buffer_gets_th number default 10000; /* Num. buf gets */
    p_def_sharable_mem_th number default 1048576; /* Sharable memory */
    p_def_version_count_th number default 20; /* Child Cursors */
    p_def_all_init varchar2(10) default 'FALSE';
    cursor get_instance is
    select instance_number, instance_name
    , startup_time, parallel, version
    , host_name
    from v$instance;
    cursor get_db is
    select dbid, name
    from v$database;
    procedure SNAP
    (i_snap_level in number default null
    ,i_session_id in number default null
    ,i_ucomment in varchar2 default null
    ,i_num_sql in number default null
    ,i_executions_th in number default null
    ,i_parse_calls_th in number default null
    ,i_disk_reads_th in number default null
    ,i_buffer_gets_th in number default null
    ,i_sharable_mem_th in number default null
    ,i_version_count_th in number default null
    ,i_all_init in varchar2 default null
    ,i_pin_statspack in varchar2 default null
    ,i_modify_parameter in varchar2 default 'FALSE'
    is
    /* Takes a snapshot by calling the SNAP function, and discards
    the snapshot id. This is useful when automating taking
    snapshots from dbms_job
    l_snap_id number;
    begin
    l_snap_id := statspack.snap ( i_snap_level, i_session_id, i_ucomment
    , i_num_sql
    , i_executions_th
    , i_parse_calls_th
    , i_disk_reads_th
    , i_buffer_gets_th
    , i_sharable_mem_th
    , i_version_count_th
    , i_all_init
    , i_pin_statspack
    , i_modify_parameter);
    end SNAP;
    procedure MODIFY_STATSPACK_PARAMETER
    ( i_dbid in number default null
    , i_instance_number in number default null
    , i_snap_level in number default null
    , i_session_id in number default null
    , i_ucomment in varchar2 default null
    , i_num_sql in number default null
    , i_executions_th in number default null
    , i_parse_calls_th in number default null
    , i_disk_reads_th in number default null
    , i_buffer_gets_th in number default null
    , i_sharable_mem_th in number default null
    , i_version_count_th in number default null
    , i_all_init in varchar2 default null
    , i_pin_statspack in varchar2 default null
    , i_modify_parameter in varchar2 default 'TRUE'
    is
    /* Calls QAM with the modify flag, and discards the
    output variables
    l_snap_level number;
    l_session_id number;
    l_ucomment varchar2(160);
    l_num_sql number;
    l_executions_th number;
    l_parse_calls_th number;
    l_disk_reads_th number;
    l_buffer_gets_th number;
    l_sharable_mem_th number;
    l_version_count_th number;
    l_all_init varchar2(5);
    l_pin_statspack varchar2(10);
    begin
    statspack.qam_statspack_parameter( i_dbid
    , i_instance_number
    , i_snap_level
    , i_session_id
    , i_ucomment
    , i_num_sql
    , i_executions_th
    , i_parse_calls_th
    , i_disk_reads_th
    , i_buffer_gets_th
    , i_sharable_mem_th
    , i_version_count_th
    , i_all_init
    , i_pin_statspack
    , 'TRUE'
    , l_snap_level
    , l_session_id
    , l_ucomment
    , l_num_sql
    , l_executions_th
    , l_parse_calls_th
    , l_disk_reads_th
    , l_buffer_gets_th
    , l_sharable_mem_th
    , l_version_count_th
    , l_all_init
    , l_pin_statspack);
    /* As we have explicity been requested to change the parameters,
    independently of taking a snapshot, commit
    commit;
    end MODIFY_STATSPACK_PARAMETER;
    procedure QAM_STATSPACK_PARAMETER
    ( i_dbid in number default null
    , i_instance_number in number default null
    , i_snap_level in number default null
    , i_session_id in number default null
    , i_ucomment in varchar2 default null
    , i_num_sql in number default null
    , i_executions_th in number default null
    , i_parse_calls_th in number default null
    , i_disk_reads_th in number default null
    , i_buffer_gets_th in number default null
    , i_sharable_mem_th in number default null
    , i_version_count_th in number default null
    , i_all_init in varchar2 default null
    , i_pin_statspack in varchar2 default null
    , i_modify_parameter in varchar2 default 'FALSE'
    , o_snap_level out number
    , o_session_id out number
    , o_ucomment out varchar2
    , o_num_sql out number
    , o_executions_th out number
    , o_parse_calls_th out number
    , o_disk_reads_th out number
    , o_buffer_gets_th out number
    , o_sharable_mem_th out number
    , o_version_count_th out number
    , o_all_init out varchar2
    , o_pin_statspack out varchar2
    is
    /* Query And Modify statspack parameter procedure, allows query
    and/or user modification of the statistics collection parameters
    for an instance. If there are no pre-existing parameters for
    an instance, insert the Oracle defaults.
    l_instance_number number;
    l_dbid number;
    ui_all_init varchar2(5);
    l_params_exist varchar2(1);
    begin
    if ((i_dbid is null ) or (i_instance_number is null)) then
    l_dbid := p_dbid;
    l_instance_number := p_instance_number;
    else
    l_dbid := i_dbid;
    l_instance_number := i_instance_number;
    end if;
    /* Upper case any input vars which are inserted */
    ui_all_init := upper(i_all_init);
    if ( (i_modify_parameter is null)
    or (upper(i_modify_parameter) = 'FALSE') ) then
    /* Query values, if none exist, insert the defaults tempered
    with variables supplied */
    begin
    select nvl(i_session_id, session_id)
    , nvl(i_snap_level, snap_level)
    , nvl(i_ucomment, ucomment)
    , nvl(i_num_sql, num_sql)
    , nvl(i_executions_th, executions_th)
    , nvl(i_parse_calls_th, parse_calls_th)
    , nvl(i_disk_reads_th, disk_reads_th)
    , nvl(i_buffer_gets_th, buffer_gets_th)
    , nvl(i_sharable_mem_th, sharable_mem_th)
    , nvl(i_version_count_th, version_count_th)
    , nvl(ui_all_init, all_init)
    , nvl(i_pin_statspack, pin_statspack)
    into o_session_id
    , o_snap_level
    , o_ucomment
    , o_num_sql
    , o_executions_th
    , o_parse_calls_th
    , o_disk_reads_th
    , o_buffer_gets_th
    , o_sharable_mem_th
    , o_version_count_th
    , o_all_init
    , o_pin_statspack
    from stats$statspack_parameter
    where instance_number = l_instance_number
    and dbid = l_dbid;
    exception
    when NO_DATA_FOUND then
    insert into stats$statspack_parameter
    ( dbid
    , instance_number
    , session_id
    , snap_level
    , ucomment
    , num_sql
    , executions_th
    , parse_calls_th
    , disk_reads_th
    , buffer_gets_th
    , sharable_mem_th
    , version_count_th
    , all_init
    , pin_statspack
    , last_modified
    values
    ( l_dbid
    , l_instance_number
    , p_def_session_id
    , p_def_snap_level
    , p_def_ucomment
    , p_def_num_sql
    , p_def_executions_th
    , p_def_parse_calls_th
    , p_def_disk_reads_th
    , p_def_buffer_gets_th
    , p_def_sharable_mem_th
    , p_def_version_count_th
    , p_def_all_init
    , p_def_pin_statspack
    , SYSDATE
    returning nvl(i_session_id, p_def_session_id)
    , nvl(i_snap_level, p_def_snap_level)
    , nvl(i_ucomment, p_def_ucomment)
    , nvl(i_num_sql, p_def_num_sql)
    , nvl(i_executions_th, p_def_executions_th)
    , nvl(i_parse_calls_th, p_def_parse_calls_th)
    , nvl(i_disk_reads_th, p_def_disk_reads_th)
    , nvl(i_buffer_gets_th, p_def_buffer_gets_th)
    , nvl(i_sharable_mem_th, p_def_sharable_mem_th)
    , nvl(i_version_count_th, p_def_version_count_th)
    , nvl(ui_all_init, p_def_all_init)
    , nvl(i_pin_statspack, p_def_pin_statspack)
    into o_session_id
    , o_snap_level
    , o_ucomment
    , o_num_sql
    , o_executions_th
    , o_parse_calls_th
    , o_disk_reads_th
    , o_buffer_gets_th
    , o_sharable_mem_th
    , o_version_count_th
    , o_all_init
    , o_pin_statspack;
    end; /* don't modify parameter values */
    elsif upper(i_modify_parameter) = 'TRUE' then
    /* modify values, if none exist, insert the defaults tempered
    with the variables supplied */
    begin
    update stats$statspack_parameter
    set session_id = nvl(i_session_id, session_id)
    , snap_level = nvl(i_snap_level, snap_level)
    , ucomment = nvl(i_ucomment, ucomment)
    , num_sql = nvl(i_num_sql, num_sql)
    , executions_th = nvl(i_executions_th, executions_th)
    , parse_calls_th = nvl(i_parse_calls_th, parse_calls_th)
    , disk_reads_th = nvl(i_disk_reads_th, disk_reads_th)
    , buffer_gets_th = nvl(i_buffer_gets_th, buffer_gets_th)
    , sharable_mem_th = nvl(i_sharable_mem_th, sharable_mem_th)
    , version_count_th = nvl(i_version_count_th, version_count_th)
    , all_init = nvl(ui_all_init, all_init)
    , pin_statspack = nvl(i_pin_statspack, pin_statspack)
    where instance_number = l_instance_number
    and dbid = l_dbid
    returning session_id
    , snap_level
    , ucomment
    , num_sql
    , executions_th
    , parse_calls_th
    , disk_reads_th
    , buffer_gets_th
    , sharable_mem_th
    , version_count_th
    , all_init
    , pin_statspack
    into o_session_id
    , o_snap_level
    , o_ucomment
    , o_num_sql
    , o_executions_th
    , o_parse_calls_th
    , o_disk_reads_th
    , o_buffer_gets_th
    , o_sharable_mem_th
    , o_version_count_th
    , o_all_init
    , o_pin_statspack;
    if SQL%ROWCOUNT = 0 then
    insert into stats$statspack_parameter
    ( dbid
    , instance_number
    , session_id
    , snap_level
    , ucomment
    , num_sql
    , executions_th
    , parse_calls_th
    , disk_reads_th
    , buffer_gets_th
    , sharable_mem_th
    , version_count_th
    , all_init
    , pin_statspack
    , last_modified
    values
    ( l_dbid
    , l_instance_number
    , nvl(i_session_id, p_def_session_id)
    , nvl(i_snap_level, p_def_snap_level)
    , nvl(i_ucomment, p_def_ucomment)
    , nvl(i_num_sql, p_def_num_sql)
    , nvl(i_executions_th, p_def_executions_th)
    , nvl(i_parse_calls_th, p_def_parse_calls_th)
    , nvl(i_disk_reads_th, p_def_disk_reads_th)
    , nvl(i_buffer_gets_th, p_def_buffer_gets_th)
    , nvl(i_sharable_mem_th, p_def_sharable_mem_th)
    , nvl(i_version_count_th, p_def_version_count_th)
    , nvl(ui_all_init, p_def_all_init)
    , nvl(i_pin_statspack, p_def_pin_statspack)
    , SYSDATE
    returning session_id
    , snap_level
    , ucomment
    , num_sql
    , executions_th
    , parse_calls_th
    , disk_reads_th
    , buffer_gets_th
    , sharable_mem_th
    , version_count_th
    , all_init
    , pin_statspack
    into o_session_id
    , o_snap_level
    , o_ucomment
    , o_num_sql
    , o_executions_th
    , o_parse_calls_th
    , o_disk_reads_th
    , o_buffer_gets_th
    , o_sharable_mem_th
    , o_version_count_th
    , o_all_init
    , o_pin_statspack;
    end if;
    end; /* modify values */
    else
    /* error */
    raise_application_error
    (-20100,'QAM_STATSPACK_PARAMETER i_modify_parameter value is invalid');
    end if; /* modify */
    end QAM_STATSPACK_PARAMETER;
    procedure STAT_CHANGES
    /* Returns a set of differences of the values from corresponding pairs
    of rows in STATS$SYSSTAT, STATS$LIBRARYCACHE and STATS$WAITSTAT,
    based on the begin and end (bid, eid) snapshot id's specified.
    This procedure is the only call to STATSPACK made by the statsrep
    report.
    Modified to include multi-db support.
    ( bid IN number
    , eid IN number
    , db_ident IN number
    , inst_num IN number
    , parallel IN varchar2
    , lhtr OUT number, bfwt OUT number
    , tran OUT number, chng OUT number
    , ucal OUT number, urol OUT number
    , rsiz OUT number
    , phyr OUT number, phyrd OUT number
    , phyrdl OUT number
    , phyw OUT number, ucom OUT number
    , prse OUT number, hprse OUT number
    , recr OUT number, gets OUT number
    , rlsr OUT number, rent OUT number
    , srtm OUT number, srtd OUT number
    , srtr OUT number, strn OUT number
    , lhr OUT number, bc OUT varchar2
    , sp OUT varchar2, lb OUT varchar2
    , bs OUT varchar2, twt OUT number
    , logc OUT number, prscpu OUT number
    , tcpu OUT number, exe OUT number
    , prsela OUT number
    , bspm OUT number, espm OUT number
    , bfrm OUT number, efrm OUT number
    , blog OUT number, elog OUT number
    , bocur OUT number, eocur OUT number
    , dmsd OUT number, dmfc OUT number -- begin OPS
    , dfcms OUT number, dfcmr OUT number
    , dmsi OUT number, dmrv OUT number
    , dynal OUT number, dynares OUT number
    , pmrv OUT number, pmpt OUT number
    , npmrv OUT number, npmpt OUT number
    , scma OUT number, scml OUT number
    , pinc OUT number, picrnc OUT number
    , picc OUT number, picrcc OUT number
    , pbc OUT number, pbcrc OUT number
    , pcba OUT number, pccrba OUT number
    , pcrbpi OUT number
    , dynapres OUT number, dynapshl OUT number
    , prcma OUT number, prcml OUT number
    , pwrm OUT number, pfpim OUT number
    , pwnm OUT number
    , dpms OUT number, dnpms OUT number
    , glsg OUT number, glag OUT number
    , glgt OUT number, glsc OUT number
    , glac OUT number, glct OUT number
    , glrl OUT number
    , gcge OUT number, gcgt OUT number
    , gccv OUT number, gcct OUT number
    , gccrrv OUT number, gccrrt OUT number
    , gccurv OUT number, gccurt OUT number
    , gccrsv OUT number
    , gccrbt OUT number, gccrft OUT number
    , gccrst OUT number, gccusv OUT number
    , gccupt OUT number, gccuft OUT number
    , gccust OUT number -- end OPS
    ) is
    bval number;
    eval number;
    l_b_session_id number; /* begin session id */
    l_b_serial# number; /* begin serial# */
    l_e_session_id number; /* end session id */
    l_e_serial# number; /* end serial# */
    function LIBRARYCACHE_HITRATIO RETURN number is
    /* Returns Library cache hit ratio for the begin and end (bid, eid)
    snapshot id's specified
    cursor LH (i_snap_id number) is
    select sum(pins), sum(pinhits)
    from stats$librarycache
    where snap_id = i_snap_id
    and dbid = db_ident
    and instance_number = inst_num;
    bpsum number;
    bhsum number;
    epsum number;
    ehsum number;
    begin
    if not LH%ISOPEN then open LH (bid); end if;
    fetch LH into bpsum, bhsum;
    if LH%NOTFOUND then
    raise_application_error
    (-20100,'Missing start value for stats$librarycache');
    end if; close LH;
    if not LH%ISOPEN then open LH (eid); end if;
    fetch LH into epsum, ehsum;
    if LH%NOTFOUND then
    raise_application_error
    (-20100,'Missing end value for stats$librarycache');
    end if; close LH;
    return (ehsum - bhsum) / (epsum - bpsum);
    end LIBRARYCACHE_HITRATIO;
    function GET_PARAM (i_name varchar2) RETURN varchar2 is
    /* Returns the value for the init.ora parameter for the snapshot
    specified.
    cursor PARAMETER is
    select value
    from stats$parameter
    where snap_id = eid
    and dbid = db_ident
    and instance_number = inst_num
    and name = i_name;
    par_value varchar2(512);
    begin
    if not PARAMETER%ISOPEN then open PARAMETER; end if;
    fetch PARAMETER into par_value;
    if PARAMETER%NOTFOUND then
    raise_application_error
    (-20100,'Missing Init.ora parameter '|| i_name);
    end if; close PARAMETER;
    return par_value;
    end GET_PARAM;
    function GET_SYSSTAT (i_name varchar2, i_beid number) RETURN number is
    /* Returns the value for the System Statistic for the snapshot
    specified.
    cursor SYSSTAT is
    select value
    from stats$sysstat
    where snap_id = i_beid
    and dbid = db_ident
    and instance_number = inst_num
    and name = i_name;
    stat_value varchar2(512);
    begin
    if not SYSSTAT%ISOPEN then open SYSSTAT; end if;
    fetch SYSSTAT into stat_value;
    if SYSSTAT%NOTFOUND then
    raise_application_error
    (-20100,'Missing System Statistic '|| i_name);
    end if; close SYSSTAT;
    return stat_value;
    end GET_SYSSTAT;
    function BUFFER_WAITS RETURN number is
    /* Returns the total number of waits for all buffers in the interval
    specified by the begin and end snapshot id's (bid, eid)
    cursor BW (i_snap_id number) is
    select sum(wait_count)
    from stats$waitstat
    where snap_id = i_snap_id
    and dbid = db_ident
    and instance_number = inst_num;
    bbwsum number; ebwsum number;
    begin
    if not BW%ISOPEN then open BW (bid); end if;
    fetch BW into bbwsum;
    if BW%NOTFOUND then
    raise_application_error
    (-20100,'Missing start value for stats$waitstat');
    end if; close BW;
    if not BW%ISOPEN then open BW (eid); end if;
    fetch BW into ebwsum;
    if BW%NOTFOUND then
    raise_application_error
    (-20100,'Missing end value for stats$waitstat');
    end if; close BW;
    return ebwsum - bbwsum;
    end BUFFER_WAITS;
    function TOTAL_EVENT_TIME RETURN number is
    /* Returns the total amount of time waited for events for
    the interval specified by the begin and end snapshot id's
    (bid, eid) by foreground processes. This excludes idle
    wait events.
    cursor WAITS (i_snap_id number) is
    select sum(time_waited_micro)
    from stats$system_event
    where snap_id = i_snap_id
    and dbid = db_ident
    and instance_number = inst_num
    and event not in (select event from stats$idle_event);
    bwaittime number;
    ewaittime number;
    begin
    if not WAITS%ISOPEN then open WAITS (bid); end if;
    fetch WAITS into bwaittime;
    if WAITS%NOTFOUND then
    raise_application_error
    (-20100,'Missing start value for stats$system_event');
    end if; close WAITS;
    if not WAITS%ISOPEN then open WAITS (eid); end if;
    fetch WAITS into ewaittime;
    if WAITS%NOTFOUND then
    raise_application_error
    (-20100,'Missing end value for stats$system_event');
    end if; close WAITS;
    return ewaittime - bwaittime;
    end TOTAL_EVENT_TIME;
    function LATCH_HITRATIO return NUMBER is
    /* Returns the latch hit ratio specified by the begin and
    end snapshot id's (bid, eid)
    cursor GETS_MISSES (i_snap_id number) is
    select sum(gets), sum(misses)
    from stats$latch
    where snap_id = i_snap_id
    and dbid = db_ident
    and instance_number = inst_num;
    blget number; -- beginning latch gets
    blmis number; -- beginning latch misses
    elget number; -- end latch gets
    elmis number; -- end latch misses
    begin
    if not GETS_MISSES%ISOPEN then open GETS_MISSES (bid); end if;
    fetch GETS_MISSES into blget, blmis;
    if GETS_MISSES%NOTFOUND then
    raise_application_error
    (-20100,'Missing start value for STATS$LATCH gets and misses');
    end if; close GETS_MISSES;
    if not GETS_MISSES%ISOPEN then open GETS_MISSES (eid); end if;
    fetch GETS_MISSES into elget, elmis;
    if GETS_MISSES%NOTFOUND then
    raise_application_error
    (-20100,'Missing end value for STATS$LATCH gets and misses');
    end if; close GETS_MISSES;
    return ( ( elmis - blmis ) / ( elget - blget ) );
    end LATCH_HITRATIO;
    function SGASTAT (i_name varchar2, i_beid number) RETURN number is
    /* Returns the bytes used by i_name in the shared pool
    for the begin or end snapshot (bid, eid) specified
    cursor bytes_used is
    select bytes
    from stats$sgastat
    where snap_id = i_beid
    and dbid = db_ident
    and instance_number = inst_num
    and pool in ('shared pool', 'all pools')
    and name = i_name;
    total_bytes number;
    begin
    if i_name = 'total_shared_pool' then
    select sum(bytes)
    into total_bytes
    from stats$sgastat
    where snap_id = i_beid
    and dbid = db_ident
    and instance_number = inst_num
    and pool in ('shared pool','all pools');
    else
    open bytes_used; fetch bytes_used into total_bytes;
    if bytes_used%notfound then
    raise_application_error
    (-20100,'Missing value for SGASTAT: '||i_name);
    end if;
    close bytes_used;
    end if;
    return total_bytes;
    end SGASTAT;
    function SYSDIF (i_name varchar2) RETURN number is
    /* Returns the difference between statistics for the statistic
    name specified for the interval between the begin and end
    snapshot id's (bid, eid)
    cursor SY (i_snap_id number) is
    select value
    from stats$sysstat
    where snap_id = i_snap_id
    and dbid = db_ident
    and instance_number = inst_num
    and name = i_name;
    begin
    /* Get start value */
    open SY (bid); fetch SY into bval;
    if SY%notfound then
    raise_application_error
    (-20100,'Missing start value for statistic: '||i_name);
    end if; close SY;
    /* Get end value */
    open SY (eid); fetch SY into eval;
    if SY%notfound then
    raise_application_error
    (-20100,'Missing end value for statistic: '||i_name);
    end if; close SY;
    /* Return difference */
    return eval - bval;
    end SYSDIF;
    function SESDIF (st_name varchar2) RETURN number is
    /* Returns the difference between statistics values for the
    statistic name specified for the interval between the begin and end
    snapshot id's (bid, eid), for the session monitored for that
    snapshot
    cursor SE (i_snap_id number) is
    select ses.value
    from stats$sysstat sys
    , stats$sesstat ses
    where sys.snap_id = i_snap_id
    and ses.snap_id = i_snap_id
    and ses.dbid = db_ident
    and sys.dbid = db_ident
    and ses.instance_number = inst_num
    and sys.instance_number = inst_num
    and ses.statistic# = sys.statistic#
    and sys.name = st_name;
    begin
    /* Get start value */
    open SE (bid); fetch SE into bval;
    if SE%notfound then
    eval :=0;
    end if; close SE;
    /* Get end value */
    open SE (eid); fetch SE into eval;
    if SE%notfound then
    eval :=0;
    end if; close SE;
    /* Return difference */
    return eval - bval;
    end SESDIF;
    function DLMDIF (i_name varchar2) RETURN number is
    /* Returns the difference between statistics for the statistic
    name specified for the interval between the begin and end
    snapshot id's (bid, eid)
    cursor DLM (i_snap_id number) is
    select value
    from stats$dlm_misc
    where snap_id = i_snap_id
    and dbid = db_ident
    and instance_number = inst_num
    and name = i_name;
    begin
    /* Get start value */
    open DLM (bid); fetch DLM into bval;
    if DLM%notfound then
    raise_application_error
    (-20100,'Missing start value for statistic: '||i_name);
    end if; close DLM;
    /* Get end value */
    open DLM (eid); fetch DLM into eval;
    if DLM%notfound then
    raise_application_error
    (-20100,'Missing end value for statistic: '||i_name);
    end if; close DLM;
    /* Return difference */
    return eval - bval;
    end DLMDIF;
    begin /* main procedure body of STAT_CHANGES */
    lhtr := LIBRARYCACHE_HITRATIO;
    bfwt := BUFFER_WAITS;
    lhr := LATCH_HITRATIO;
    chng := SYSDIF('db block changes');
    ucal := SYSDIF('user calls');
    urol := SYSDIF('user rollbacks');
    ucom := SYSDIF('user commits');
    tran := ucom + urol;
    rsiz := SYSDIF('redo size');
    phyr := SYSDIF('physical reads');
    phyrd := SYSDIF('physical reads direct');
    phyrdl := SYSDIF('physical reads direct (lob)');
    phyw := SYSDIF('physical writes');
    hprse := SYSDIF('parse count (hard)');
    prse := SYSDIF('parse count (total)');
    gets := SYSDIF('session logical reads');
    recr := SYSDIF('recursive calls');
    rlsr := SYSDIF('redo log space requests');
    rent := SYSDIF('redo entries');
    srtm := SYSDIF('sorts (memory)');
    srtd := SYSDIF('sorts (disk)');
    srtr := SYSDIF('sorts (rows)');
    logc := SYSDIF('logons cumulative');
    prscpu := SYSDIF('parse time cpu');
    prsela := SYSDIF('parse time elapsed');
    tcpu := SYSDIF('CPU used by this session');
    exe := SYSDIF('execute count');
    bs := GET_PARAM('db_block_size');
    bc := GET_PARAM('db_block_buffers') * bs;
    if bc = 0 then
    bc := GET_PARAM('db_cache_size')
    + GET_PARAM('db_keep_cache_size')
    + GET_PARAM('db_recycle_cache_size')
    + GET_PARAM('db_2k_cache_size')
    + GET_PARAM('db_4k_cache_size')
    + GET_PARAM('db_8k_cache_size')
    + GET_PARAM('db_16k_cache_size')
    + GET_PARAM('db_32k_cache_size');
    end if;
    sp := GET_PARAM('shared_pool_size');
    lb := GET_PARAM('log_buffer');
    twt := TOTAL_EVENT_TIME; -- total wait time for all non-idle events
    bspm := SGASTAT('total_shared_pool', bid);
    espm := SGASTAT('total_shared_pool', eid);
    bfrm := SGASTAT('free memory', bid);
    efrm := SGASTAT('free memory', eid);
    blog := GET_SYSSTAT('logons current', bid);
    elog := GET_SYSSTAT('logons current', eid);
    bocur := GET_SYSSTAT('opened cursors current', bid);
    eocur := GET_SYSSTAT('opened cursors current', eid);
    /* Do we want to report on cluster-specific statistics? Check
    in procedure variable "parallel".
    if parallel = 'YES' then
    dmsd := DLMDIF('messages sent directly');
    dmfc := DLMDIF('messages flow controlled');
    dmsi := DLMDIF('messages sent indirectly');
    dmrv := DLMDIF('messages received');
    dfcms := DLMDIF('flow control messages sent');
    dfcmr := DLMDIF('flow control messages received');
    dynal := DLMDIF('dynamically allocated enqueues');
    dynares := DLMDIF('dynamically allocated resources');
    pmrv := DLMDIF('gcs msgs received');
    pmpt := DLMDIF('gcs msgs process time(ms)');
    npmrv := DLMDIF('ges msgs received');
    npmpt := DLMDIF('ges msgs process time(ms)');
    scma := DLMDIF('gcs side channel msgs actual');
    scml := DLMDIF('gcs side channel msgs logical');
    pinc := DLMDIF('gcs immediate (null) converts');
    picrnc := DLMDIF('gcs immediate cr (null) converts');
    picc := DLMDIF('gcs immediate (compatible) converts');
    picrcc := DLMDIF('gcs immediate cr (compatible) converts');
    pbc := DLMDIF('gcs blocked converts');
    pbcrc := DLMDIF('gcs blocked cr converts');
    pcba := DLMDIF('gcs compatible basts');
    pccrba := DLMDIF('gcs compatible cr basts');
    pcrbpi := DLMDIF('gcs cr basts to PIs');
    dynapres := DLMDIF('dynamically allocated gcs resources');
    dynapshl := DLMDIF('dynamically allocated gcs shadows');
    prcma := DLMDIF('gcs recovery claim msgs actual');
    prcml := DLMDIF('gcs recovery claim msgs logical');
    pwrm := DLMDIF('gcs write request msgs');
    pfpim := DLMDIF('gcs flush pi msgs');
    pwnm := DLMDIF('gcs write notification msgs');
    dpms := SYSDIF('gcs messages sent');
    dnpms := SYSDIF('ges messages sent');
    glsg := SYSDIF('global lock sync gets');
    glag := SYSDIF('global lock async gets');
    glgt := SYSDIF('global lock get time');
    glsc := SYSDIF('global lock sync converts');
    glac := SYSDIF('global lock async converts');
    glct := SYSDIF('global lock convert time');
    glrl := SYSDIF('global lock releases');
    gcge := SYSDIF('global cache gets');
    gcgt := SYSDIF('global cache get time');
    gccv := SYSDIF('global cache converts');
    gcct := SYSDIF('global cache convert time');
    gccrrv := SYSDIF('global cache cr blocks received');
    gccrrt := SYSDIF('global cache cr block receive time');
    gccurv := SYSDIF('global cache current blocks received');
    gccurt := SYSDIF('global cache current block receive time');
    gccrsv := SYSDIF('global cache cr blocks served');
    gccrbt := SYSDIF('global cache cr block build time');
    gccrft := SYSDIF('global cache cr block flush time');
    gccrst := SYSDIF('global cache cr block send time');
    gccusv := SYSDIF('global cache current blocks served');
    gccupt := SYSDIF('global cache current block pin time');
    gccuft := SYSDIF('global cache current block flush time');
    gccust := SYSDIF('global cache current block send time');
    end if;
    /* Determine if we want to report on session-specific statistics.
    Check that the session is the same one for both snapshots.
    select session_id
    , serial#
    into l_b_session_id
    , l_b_serial#
    from stats$snapshot
    where snap_id = bid
    and dbid = db_ident
    and instance_number = inst_num;
    select session_id
    , serial#
    into l_e_session_id
    , l_e_serial#
    from stats$snapshot
    where snap_id = eid
    and dbid = db_ident
    and instance_number = inst_num;
    if ( (l_b_session_id = l_e_session_id)
    and (l_b_serial# = l_e_serial#)
    and (l_b_session_id != 0) ) then
    /* we have a valid comparison - it is the
    same session - get number of tx performed
    by this session */
    strn := SESDIF('user rollbacks') + SESDIF('user commits');
    if strn = 0 then
    /* No new transactions */
    strn := 1;
    end if;
    else
    /* No valid comparison can be made */
    strn :=1;
    end if;
    end STAT_CHANGES;
    function SNAP
    (i_snap_level in number default null
    ,i_session_id in number default null
    ,i_ucomment in varchar2 default null
    ,i_num_sql in number default null
    ,i_executions_th in number default null
    ,i_parse_calls_th in number default null
    ,i_disk_reads_th in number default null
    ,i_buffer_gets_th in number default null
    ,i_sharable_mem_th in number default null
    ,i_version_count_th in number default null
    ,i_all_init in varchar2 default null
    ,i_pin_statspack in varchar2 default null
    ,i_modify_parameter in varchar2 default 'FALSE'
    RETURN integer IS
    /* This function performs a snapshot of the v$ views into the
    stats$ tables, and returns the snapshot id.
    If parameters are passed, these are the values used, otherwise
    the values stored in the stats$statspack_parameter table are used.
    l_snap_id integer;
    l_snap_level number;
    l_session_id number;
    l_serial# number;
    l_ucomment varchar2(160);
    l_num_sql number;
    l_executions_th number;
    l_parse_calls_th number;
    l_disk_reads_th number;
    l_buffer_gets_th number;
    l_sharable_mem_th number;
    l_version_count_th number;
    l_all_init varchar2(5);
    l_pin_statspack varchar2(10);
    l_sql_stmt varchar2(3000);
    l_slarti varchar2(20);
    l_threshold number;
    l_total_sql number := 0;
    l_total_sql_mem number := 0;
    l_single_use_sql number := 0;
    l_single_use_sql_mem number := 0;
    l_text_subset varchar2(31);
    l_sharable_mem number;
    l_version_count number;
    l_sorts number;
    l_module varchar2(64);
    l_loaded_versions number;
    l_executions number;
    l_loads number;
    l_invalidations number;
    l_parse_calls number;
    l_disk_reads number;
    l_buffer_gets number;
    l_rows_processed number;
    l_address raw(8);
    l_hash_value number;
    l_version_count number;
    l_max_begin_time date;
    cursor GETSERIAL is
    select serial#
    from v$session
    where sid = l_session_id;
    PROCEDURE snap_sql IS
    begin
    /* Gather summary statistics */
    insert into stats$sql_statistics
    ( snap_id
    , dbid
    , instance_number
    , total_sql
    , total_sql_mem
    , single_use_sql
    , single_use_sql_mem
    select l_snap_id
    , p_dbid
    , p_instance_number
    , count(1)
    , sum(sharable_mem)
    , sum(decode(executions, 1, 1, 0))
    , sum(decode(executions, 1, sharable_mem, 0))
    from stats$v$sqlxs
    where is_obsolete = 'N';
    /* Gather SQL statements which exceed any threshold,
    excluding obsolete parent cursors
    insert into stats$sql_summary
    ( snap_id
    , dbid
    , instance_number
    , text_subset
    , sharable_mem
    , sorts
    , module
    , loaded_versions
    , executions
    , loads
    , invalidations
    , parse_calls
    , disk_reads
    , buffer_gets
    , rows_processed
    , command_type
    , address
    , hash_value
    , version_count
    , cpu_time
    , elapsed_time
    , outline_sid
    , outline_category
    select l_snap_id
    , p_dbid
    , p_instance_number
    , substr(sql_text,1,31)
    , sharable_mem
    , sorts
    , module
    , loaded_versions
    , executions
    , loads
    , invalidations
    , parse_calls
    , disk_reads
    , buffer_gets
    , rows_processed
    , command_type
    , address
    , hash_value
    , version_count
    , cpu_time
    , elapsed_time
    , outline_sid
    , outline_category
    from stats$v$sqlxs
    where is_obsolete = 'N'
    and ( buffer_gets > l_buffer_gets_th
    or disk_reads > l_disk_reads_th
    or parse_calls > l_parse_calls_th
    or executions > l_executions_th
    or sharable_mem > l_sharable_mem_th
    or version_count > l_version_count_th
    /* Insert the SQL Text for hash_values captured in the snapshot
    into stats$sqltext if it's not already there. Identify SQL which
    execeeded the threshold by querying stats$sql_summary for this
    snapid and database instance
    insert into stats$sqltext
    ( hash_value
    , text_subset
    , piece
    , sql_text
    , address
    , command_type
    , last_snap_id
    select st1.hash_value
    , ss.text_subset
    , st1.piece
    , st1.sql_text
    , st1.address
    , st1.command_type
    , ss.snap_id
    from v$sqltext st1
    , stats$sql_summary ss
    where ss.snap_id = l_snap_id
    and ss.dbid = p_dbid
    and ss.instance_number = p_instance_number
    and st1.hash_value = ss.hash_value
    and st1.address = ss.address
    and not exists (select 1
    from stats$sqltext st2
    where st2.hash_value = ss.hash_value
    and st2.text_subset = ss.text_subset
    IF l_snap_level >= 6 THEN
    /* Identify SQL which execeeded the threshold by querying
    stats$sql_summary for this snapid and database instance.
    Capture the plans which were used for the high-load SQL if
    don't already have this data.
    Omit capturing plan usage information for cursors which
    have a zero plan hash value.
    Currently this is captured in a level 6 (or greater)
    snapshot, however this may be integrated into level 5
    snapshot at a later date.
    hl - high load
    insert into stats$sql_plan_usage
    ( hash_value
    , text_subset
    , plan_hash_value
    , cost
    , snap_id
    , address
    , optimizer
    select hl.hash_value
    , hl.text_subset
    , hl.plan_hash_value
    , hl.cost
    , max(hl.snap_id)
    , max(hl.address)
    , max(hl.optimizer)
    from (select /*+ ordered use_nl(sq) index(sq) */
    ss.hash_value
    , ss.text_subset
    , sq.plan_hash_value
    , nvl(sq.optimizer_cost,-9) cost
    , ss.snap_id snap_id
    , ss.address
    , sq.optimizer_mode optimizer
    from stats$sql_summary ss
    , v$sql sq
    where ss.snap_id = l_snap_id
    and ss.dbid = p_dbid
    and ss.instance_number = p_instance_number
    and sq.hash_value = ss.hash_value
    and sq.address = ss.address
    and sq.plan_hash_value > 0
    ) hl
    where not exists (select /*+ no_unnest */
    from stats$sql_plan_usage spu
    where spu.hash_value = hl.hash_value
    and spu.text_subset = hl.text_subset
    and spu.plan_hash_value
    = hl.plan_hash_value
    and spu.cost = hl.cost
    group by hl.hash_value
    , hl.text_subset
    , hl.plan_hash_value
    , hl.cost
    , hl.optimizer;
    /* For all new hash_value, plan_hash_value, cost combinations
    just captured, get the optimizer plans, if we don't already
    have them. Note that the plan (and hence the plan hash value)
    comprises the access path and the join order (and not
    variable factors such as the cardinality).
    insert into stats$sql_plan
    ( plan_hash_value
    , id
    , operation
    , options
    , object_node
    , object#
    , object_owner
    , object_name
    , optimizer
    , parent_id
    , depth
    , position
    , cost
    , cardinality
    , bytes
    , other_tag
    , partition_start
    , partition_stop
    , partition_id
    , other
    , distribution
    , cpu_cost
    , io_cost
    , temp_space
    , snap_id
    select /*+ ordered use_nl(s) use_nl(sp.p) */
    new_plan.plan_hash_value
    , sp.id
    , max(sp.operation)
    , max(sp.options)
    , max(sp.object_node)
    , max(sp.object#)
    , max(sp.object_owner)
    , max(sp.object_name)
    , max(sp.optimizer)
    , max(sp.parent_id)
    , max(sp.depth)
    , max(sp.position)
    , max(sp.cost)
    , max(sp.cardinality)
    , max(sp.bytes)
    , max(sp.other_tag)
    , max(sp.partition_start)
    , max(sp.partition_stop)
    , max(sp.partition_id)
    , max(sp.other)
    , max(sp.distribution)
    , max(sp.cpu_cost)
    , max(sp.io_cost)
    , max(sp.temp_space)
    , max(new_plan.snap_id)
    from (select /*+ index(spu) */
    distinct
    spu.plan_hash_value
    , spu.hash_value
    , spu.address
    , spu.text_subset
    , spu.snap_id
    from stats$sql_plan_usage spu
    where spu.snap_id = l_snap_id
    and not exists (select /*+ nl_aj */ *
    from stats$sql_plan ssp
    where ssp.plan_hash_value
    = spu.plan_hash_value
    ) new_plan
    , v$sql s
    , v$sql_plan sp
    where sp.hash_value = new_plan.hash_value
    and sp.address = new_plan.address
    and s.hash_value = new_plan.hash_value
    and s.address = new_plan.address
    and s.hash_value = sp.hash_value
    and s.address = sp.address
    and s.child_number = sp.child_number
    group by
    new_plan.plan_hash_value
    , sp.id;
    END IF; /* snap level >=6 */
    END snap_sql;
    begin /* Function SNAP */
    /* Get instance parameter defaults from stats$statspack_parameter,
    or use supplied parameters.
    If all parameters are specified, use them, otherwise get values
    from the parameters not specified from stats$statspack_parameter.
    statspack.qam_statspack_parameter
    ( p_dbid
    , p_instance_number
    , i_snap_level, i_session_id, i_ucomment, i_num_sql
    , i_executions_th, i_parse_calls_th
    , i_disk_reads_th, i_buffer_gets_th, i_sharable_mem_th
    , i_version_count_th, i_all_init
    , i_pin_statspack
    , i_modify_parameter
    , l_snap_level, l_session_id, l_ucomment, l_num_sql
    , l_executions_th, l_parse_calls_th
    , l_disk_reads_th, l_buffer_gets_th, l_sharable_mem_th
    , l_version_count_th, l_all_init
    , l_pin_statspack);
    /* Generate a snapshot id */
    select stats$snapshot_id.nextval
    into l_snap_id
    from dual
    where rownum = 1;
    /* Determine the serial# of the session to maintain stats for,
    if this was requested.
    if l_session_id > 0 then
    if not GETSERIAL%ISOPEN then open GETSERIAL; end if;
    fetch GETSERIAL into l_serial#;
    if GETSERIAL%NOTFOUND then
    /* Session has already disappeared - don't gather
    statistics for this session in this snapshot */
    l_session_id := 0;
    l_serial# := 0;
    end if; close GETSERIAL;
    else
    l_serial# := 0;
    end if;
    /* The instance has been restarted since the last snapshot */
    if p_new_sga = 0
    then
    begin
    p_new_sga := 1;
    /* Get the instance startup time, and other characteristics */
    insert into stats$database_instance
    ( dbid
    , instance_number
    , startup_time
    , snap_id
    , parallel
    , version
    , db_name
    , instance_name
    , host_name
    select p_dbid
    , p_instance_number
    , p_startup_time
    , l_snap_id
    , p_parallel
    , p_version
    , p_name
    , p_instance_name
    , p_host_name
    from sys.dual;
    commit;
    end;
    end if; /* new SGA */
    /* Work out the max undo stat time, used for gathering undo stat data */
    select nvl(max(begin_time), to_date('01011900','DDMMYYYY'))
    into l_max_begin_time
    from stats$undostat
    where dbid = p_dbid
    and instance_number = p_instance_number;
    /* Save the snapshot characteristics */
    insert into stats$snapshot
    ( snap_id, dbid, instance_number
    , snap_time, startup_time
    , session_id, snap_level, ucomment
    , executions_th, parse_calls_th, disk_reads_th
    , buffer_gets_th, sharable_mem_th
    , version_count_th, serial#, all_init)
    values
    ( l_snap_id, p_dbid, p_instance_number
    , SYSDATE, p_startup_time
    , l_session_id, l_snap_level, l_ucomment
    , l_executions_th, l_parse_calls_th, l_disk_reads_th
    , l_buffer_gets_th, l_sharable_mem_th
    , l_version_count_th, l_serial#, l_all_init);
    /* Begin gathering statistics */
    insert into stats$filestatxs
    ( snap_id
    , dbid
    , instance_number
    , tsname
    , filename
    , phyrds
    , phywrts
    , singleblkrds
    , readtim
    , writetim
    , singleblkrdtim
    , phyblkrd
    , phyblkwrt
    , wait_count
    , time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , tsname
    , filename
    , phyrds
    , phywrts
    , singleblkrds
    , readtim
    , writetim
    , singleblkrdtim
    , phyblkrd
    , phyblkwrt
    , wait_count
    , time
    from stats$v$filestatxs;
    insert into stats$tempstatxs
    ( snap_id
    , dbid
    , instance_number
    , tsname
    , filename
    , phyrds
    , phywrts
    , singleblkrds
    , readtim
    , writetim
    , singleblkrdtim
    , phyblkrd
    , phyblkwrt
    , wait_count
    , time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , tsname
    , filename
    , phyrds
    , phywrts
    , singleblkrds
    , readtim
    , writetim
    , singleblkrdtim
    , phyblkrd
    , phyblkwrt
    , wait_count
    , time
    from stats$v$tempstatxs;
    insert into stats$librarycache
    ( snap_id
    , dbid
    , instance_number
    , namespace
    , gets
    , gethits
    , pins
    , pinhits
    , reloads
    , invalidations
    , dlm_lock_requests
    , dlm_pin_requests
    , dlm_pin_releases
    , dlm_invalidation_requests
    , dlm_invalidations
    select l_snap_id
    , p_dbid
    , p_instance_number
    , namespace
    , gets
    , gethits
    , pins
    , pinhits
    , reloads
    , invalidations
    , dlm_lock_requests
    , dlm_pin_requests
    , dlm_pin_releases
    , dlm_invalidation_requests
    , dlm_invalidations
    from v$librarycache;
    insert into stats$buffer_pool_statistics
    ( snap_id
    , dbid
    , instance_number
    , id
    , name
    , block_size
    , set_msize
    , cnum_repl
    , cnum_write
    , cnum_set
    , buf_got
    , sum_write
    , sum_scan
    , free_buffer_wait
    , write_complete_wait
    , buffer_busy_wait
    , free_buffer_inspected
    , dirty_buffers_inspected
    , db_block_change
    , db_block_gets
    , consistent_gets
    , physical_reads
    , physical_writes
    select l_snap_id
    , p_dbid
    , p_instance_number
    , id
    , name
    , block_size
    , set_msize
    , cnum_repl
    , cnum_write
    , cnum_set
    , buf_got
    , sum_write
    , sum_scan
    , free_buffer_wait
    , write_complete_wait
    , buffer_busy_wait
    , free_buffer_inspected
    , dirty_buffers_inspected
    , db_block_change
    , db_block_gets
    , consistent_gets
    , physical_reads
    , physical_writes
    from v$buffer_pool_statistics;
    insert into stats$rollstat
    ( snap_id
    , dbid
    , instance_number
    , usn
    , extents
    , rssize
    , writes
    , xacts
    , gets
    , waits
    , optsize
    , hwmsize
    , shrinks
    , wraps
    , extends
    , aveshrink
    , aveactive
    select l_snap_id
    , p_dbid
    , p_instance_number
    , usn
    , extents
    , rssize
    , writes
    , xacts
    , gets
    , waits
    , optsize
    , hwmsize
    , shrinks
    , wraps
    , extends
    , aveshrink
    , aveactive
    from v$rollstat;
    insert into stats$rowcache_summary
    ( snap_id
    , dbid
    , instance_number
    , parameter
    , total_usage
    , usage
    , gets
    , getmisses
    , scans
    , scanmisses
    , scancompletes
    , modifications
    , flushes
    , dlm_requests
    , dlm_conflicts
    , dlm_releases
    select l_snap_id
    , p_dbid
    , p_instance_number
    , parameter
    , sum("COUNT")
    , sum(usage)
    , sum(gets)
    , sum(getmisses)
    , sum(scans)
    , sum(scanmisses)
    , sum(scancompletes)
    , sum(modifications)
    , sum(flushes)
    , sum(dlm_requests)
    , sum(dlm_conflicts)
    , sum(dlm_releases)
    from v$rowcache
    group by l_snap_id, p_dbid, p_instance_number, parameter;
    /* Collect parameters every snapshot, to cater for dynamic
    parameters changable while instance is running
    if l_all_init = 'FALSE' then
    insert into stats$parameter
    ( snap_id
    , dbid
    , instance_number
    , name
    , value
    , isdefault
    , ismodified
    select l_snap_id
    , p_dbid
    , p_instance_number
    , name
    , value
    , isdefault
    , ismodified
    from v$system_parameter;
    else
    insert into stats$parameter
    ( snap_id
    , dbid
    , instance_number
    , name
    , value
    , isdefault
    , ismodified
    select l_snap_id
    , p_dbid
    , p_instance_number
    , i.ksppinm
    , sv.ksppstvl
    , sv.ksppstdf
    , decode(bitand(sv.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE')
    from stats$x$ksppi i
    , stats$x$ksppsv sv
    where i.indx = sv.indx;
    end if;
    /* To cater for variable size SGA - insert on each snapshot */
    insert into stats$sga
    ( snap_id
    , dbid
    , instance_number
    , name
    , value
    select l_snap_id
    , p_dbid
    , p_instance_number
    , name
    , value
    from v$sga;
    /* Get current allocation of memory in the SGA */
    insert into stats$sgastat
    ( snap_id
    , dbid
    , instance_number
    , pool
    , name
    , bytes
    select l_snap_id
    , p_dbid
    , p_instance_number
    , pool
    , name
    , bytes
    from v$sgastat;
    insert into stats$system_event
    ( snap_id
    , dbid
    , instance_number
    , event
    , total_waits
    , total_timeouts
    , time_waited_micro
    select l_snap_id
    , p_dbid
    , p_instance_number
    , event
    , total_waits
    , total_timeouts
    , time_waited_micro
    from v$system_event;
    insert into stats$bg_event_summary
    ( snap_id
    , dbid
    , instance_number
    , event
    , total_waits
    , total_timeouts
    , time_waited_micro
    select l_snap_id
    , p_dbid
    , p_instance_number
    , e.event
    , sum(e.total_waits)
    , sum(e.total_timeouts)
    , sum(e.time_waited_micro)
    from v$session_event e
    where e.sid in (select s.sid from v$session s where s.type = 'BACKGROUND')
    group by l_snap_id, p_dbid, p_instance_number, e.event;
    insert into stats$sysstat
    ( snap_id
    , dbid
    , instance_number
    , statistic#
    , name
    , value
    select l_snap_id
    , p_dbid
    , p_instance_number
    , statistic#
    , name
    , value
    from v$sysstat;
    insert into stats$waitstat
    ( snap_id
    , dbid
    , instance_number
    , class
    , wait_count
    , time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , class
    , "COUNT"
    , time
    from v$waitstat;
    insert into stats$enqueue_stat
    ( snap_id
    , dbid
    , instance_number
    , eq_type
    , total_req#
    , total_wait#
    , succ_req#
    , failed_req#
    , cum_wait_time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , eq_type
    , total_req#
    , total_wait#
    , succ_req#
    , failed_req#
    , cum_wait_time
    from v$enqueue_stat
    where total_req# != 0;
    insert into stats$latch
    ( snap_id
    , dbid
    , instance_number
    , name
    , latch#
    , level#
    , gets
    , misses
    , sleeps
    , immediate_gets
    , immediate_misses
    , spin_gets
    , sleep1
    , sleep2
    , sleep3
    , sleep4
    , wait_time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , name
    , latch#
    , level#
    , gets
    , misses
    , sleeps
    , immediate_gets
    , immediate_misses
    , spin_gets
    , sleep1
    , sleep2
    , sleep3
    , sleep4
    , wait_time
    from v$latch;
    insert into stats$latch_misses_summary
    ( snap_id
    , dbid
    , instance_number
    , parent_name
    , where_in_code
    , nwfail_count
    , sleep_count
    , wtr_slp_count
    select l_snap_id
    , p_dbid
    , p_instance_number
    , parent_name
    , "WHERE"
    , sum(nwfail_count)
    , sum(sleep_count)
    , sum(wtr_slp_count)
    from v$latch_misses
    where sleep_count > 0
    group by l_snap_id, p_dbid, p_instance_number
    , parent_name, "WHERE";
    insert into stats$resource_limit
    ( snap_id
    , dbid
    , instance_number
    , resource_name
    , current_utilization
    , max_utilization
    , initial_allocation
    , limit_value
    select l_snap_id
    , p_dbid
    , p_instance_number
    , resource_name
    , current_utilization
    , max_utilization
    , initial_allocation
    , limit_value
    from v$resource_limit
    where limit_value != ' UNLIMITED'
    and max_utilization > 0;
    insert into stats$undostat
    ( begin_time
    , end_time
    , dbid
    , instance_number
    , snap_id
    , undotsn
    , undoblks
    , txncount
    , maxquerylen
    , maxconcurrency
    , unxpstealcnt
    , unxpblkrelcnt
    , unxpblkreucnt
    , expstealcnt
    , expblkrelcnt
    , expblkreucnt
    , ssolderrcnt
    , nospaceerrcnt
    select begin_time
    , end_time
    , p_dbid
    , p_instance_number
    , l_snap_id
    , undotsn
    , undoblks
    , txncount
    , maxquerylen
    , maxconcurrency
    , unxpstealcnt
    , unxpblkrelcnt
    , unxpblkreucnt
    , expstealcnt
    , expblkrelcnt
    , expblkreucnt
    , ssolderrcnt
    , nospaceerrcnt
    from v$undostat
    where begin_time > l_max_begin_time
    and begin_time + (1/(24*6)) <= end_time;
    insert into stats$db_cache_advice
    ( snap_id
    , dbid
    , instance_number
    , id
    , name
    , block_size
    , buffers_for_estimate
    , advice_status
    , size_for_estimate
    , estd_physical_read_factor
    , estd_physical_reads
    select l_snap_id
    , p_dbid
    , p_instance_number
    , id
    , name
    , block_size
    , buffers_for_estimate
    , advice_status
    , size_for_estimate
    , estd_physical_read_factor
    , estd_physical_reads
    from v$db_cache_advice
    where advice_status = 'ON';
    insert into stats$pgastat
    ( snap_id
    , dbid
    , instance_number
    , name
    , value
    select l_snap_id
    , p_dbid
    , p_instance_number
    , name
    , value
    from v$pgastat;
    insert into stats$instance_recovery
    ( snap_id
    , dbid
    , instance_number
    , recovery_estimated_ios
    , actual_redo_blks
    , target_redo_blks
    , log_file_size_redo_blks
    , log_chkpt_timeout_redo_blks
    , log_chkpt_interval_redo_blks
    , fast_start_io_target_redo_blks
    , target_mttr
    , estimated_mttr
    , ckpt_block_writes
    select l_snap_id
    , p_dbid
    , p_instance_number
    , recovery_estimated_ios
    , actual_redo_blks
    , target_redo_blks
    , log_file_size_redo_blks
    , log_chkpt_timeout_redo_blks
    , log_chkpt_interval_redo_blks
    , fast_start_io_target_redo_blks
    , target_mttr
    , estimated_mttr
    , ckpt_block_writes
    from v$instance_recovery;
    if p_parallel = 'YES' then
    insert into stats$dlm_misc
    ( snap_id
    , dbid
    , instance_number
    , statistic#
    , name
    , value
    select l_snap_id
    , p_dbid
    , p_instance_number
    , statistic#
    , name
    , value
    from v$dlm_misc;
    end if; /* parallel */
    /* Begin gathering Extended Statistics */
    IF l_snap_level >= 5 THEN
    snap_sql;
    END IF; /* snap level >=5 */
    IF l_snap_level >= 10 THEN
    insert into stats$latch_children
    ( snap_id
    , dbid
    , instance_number
    , latch#
    , child#
    , gets
    , misses
    , sleeps
    , immediate_gets
    , immediate_misses
    , spin_gets
    , sleep1
    , sleep2
    , sleep3
    , sleep4
    , wait_time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , latch#
    , child#
    , gets
    , misses
    , sleeps
    , immediate_gets
    , immediate_misses
    , spin_gets
    , sleep1
    , sleep2
    , sleep3
    , sleep4
    , wait_time
    from v$latch_children;
    insert into stats$latch_parent
    ( snap_id
    , dbid
    , instance_number
    , latch#
    , level#
    , gets
    , misses
    , sleeps
    , immediate_gets
    , immediate_misses
    , spin_gets
    , sleep1
    , sleep2
    , sleep3
    , sleep4
    , wait_time
    select l_snap_id
    , p_dbid
    , p_instance_number
    , latch#
    , level#
    , gets
    , misses
    , sleeps
    , immediate_gets
    , immediate_misses
    , spin_gets
    , sleep1
    , sleep2
    , sleep3
    , sleep4
    , wait_time
    from v$latch_parent;
    END IF; /* snap level >=10 */
    /* Record level session-granular statistics if a specific session
    has been requested
    if l_session_id > 0
    then
    insert into stats$sesstat
    ( snap_id
    , dbid
    , instance_number
    , statistic#
    , value
    select l_snap_id
    , p_dbid
    , p_instance_number
    , statistic#
    , value
    from v$sesstat
    where sid = l_session_id;
    insert into stats$session_event
    ( snap_id
    , dbid
    , instance_number
    , event
    , total_waits
    , total_timeouts
    , time_waited_micro
    , max_wait
    select l_snap_id
    , p_dbid
    , p_instance_number
    , event
    , total_waits
    , total_timeouts
    , time_waited_micro
    , max_wait
    from v$session_event
    where sid = l_session_id;
    end if;
    commit work;
    RETURN l_snap_id;
    end SNAP; /* Function SNAP */
    begin /* STATSPACK body */
    /* Query the database id, instance_number, database name, instance
    name and startup time for the instance we are working on
    /* Get information about the current instance */
    open get_instance;
    fetch get_instance into
    p_instance_number, p_instance_name
    , p_startup_time, p_parallel, p_version
    , p_host_name;
    close get_instance;
    /* Select the database info for the db connected to */
    open get_db;
    fetch get_db into p_dbid, p_name;
    close get_db;
    /* Keep the package
    sys.dbms_shared_pool.keep('PERFSTAT.STATSPACK', 'P');
    /* Determine if the instance has been restarted since the previous snapshot
    begin
    select 1
    into p_new_sga
    from stats$database_instance
    where startup_time = p_startup_time
    and dbid = p_dbid
    and instance_number = p_instance_number;
    exception
    when NO_DATA_FOUND then
    p_new_sga := 0;
    end;
    end STATSPACK;
    Warning: Package Body created with compilation errors.
    SQL> show error
    Errors for PACKAGE BODY STATSPACK:
    LINE/COL ERROR
    2045/3 PLS-00201: identifier 'SYS.DBMS_SHARED_POOL' must be declared
    2045/3 PL/SQL: Statement ignored

    When i compiled the package, it compiled with following error.
    Warning: Package Body created with compilation errors.
    SQL> show error
    Errors for PACKAGE BODY STATSPACK:
    LINE/COL ERROR
    2045/3 PLS-00201: identifier 'SYS.DBMS_SHARED_POOL' must be declared
    2045/3 PL/SQL: Statement ignored
    SQL>

  • Performance(statspack) related problem

    Anybodyu can suggest me how to improve the database performance as many uiser are complaining that they are getting data very slow........
    i have also used statspack analyzer.......
    STATSPACK report for
    DB Name DB Id Instance Inst Num Release Cluster Host
    NEOSOFT 399087012 neosoft 1 9.2.0.7.0 NO APP
    Snap Id Snap Time Sessions Curs/Sess Comment
    Begin Snap: 1 16-May-08 10:20:15 435 2.2
    End Snap: 3 16-May-08 10:24:12 442 2.2
    Elapsed: 3.95 (mins)
    Cache Sizes (end)
    ~~~~~~~~~~~~~~~~~
    Buffer Cache: 352M Std Block Size: 8K
    Shared Pool Size: 200M Log Buffer: 1,024K
    Load Profile
    ~~~~~~~~~~~~ Per Second Per Transaction
    Redo size: 23,125.82 7,966.31
    Logical reads: 6,050.15 2,084.14
    Block changes: 96.53 33.25
    Physical reads: 1,103.40 380.10
    Physical writes: 16.60 5.72
    User calls: 189.40 65.24
    Parses: 29.92 10.31
    Hard parses: 8.69 2.99
    Sorts: 6.97 2.40
    Logons: 0.11 0.04
    Executes: 29.25 10.08
    Transactions: 2.90
    % Blocks changed per Read: 1.60 Recursive Call %: 31.70
    Rollback per transaction %: 0.29 Rows per Sort: 472.41
    Instance Efficiency Percentages (Target 100%)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Buffer Nowait %: 100.00 Redo NoWait %: 100.00
    Buffer Hit %: 82.01 In-memory Sort %: 99.21
    Library Hit %: 89.76 Soft Parse %: 70.95
    Execute to Parse %: -2.29 Latch Hit %: 99.95
    Parse CPU to Parse Elapsd %: 100.93 % Non-Parse CPU: 84.62
    Shared Pool Statistics Begin End
    Memory Usage %: 94.72 94.24
    % SQL with executions>1: 39.68 38.62
    % Memory for SQL w/exec>1: 39.34 38.76
    Top 5 Timed Events
    ~~~~~~~~~~~~~~~~~~ % Total
    Event Waits Time (s) Ela Time
    db file scattered read 39,162 38 39.49
    CPU time 28 29.48
    db file sequential read 42,173 28 29.24
    direct path read 1,193 1 .59
    SQL*Net more data to client 31,629 1 .53
    Wait Events for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> s - second
    -> cs - centisecond - 100th of a second
    -> ms - millisecond - 1000th of a second
    -> us - microsecond - 1000000th of a second
    -> ordered by wait time desc, waits desc (idle events last)
    Avg
    Total Wait wait Waits
    Event Waits Timeouts Time (s) (ms) /txn
    db file scattered read 39,162 0 38 1 56.9
    db file sequential read 42,173 0 28 1 61.3
    direct path read 1,193 0 1 0 1.7
    SQL*Net more data to client 31,629 0 1 0 46.0
    log file sync 683 0 0 0 1.0
    control file sequential read 184 0 0 1 0.3
    db file parallel write 61 0 0 1 0.1
    control file parallel write 78 0 0 0 0.1
    log file parallel write 732 0 0 0 1.1
    direct path write 30 0 0 0 0.0
    SQL*Net break/reset to clien 10 0 0 0 0.0
    LGWR wait for redo copy 3 0 0 0 0.0
    SQL*Net message from client 44,675 0 577 13 64.9
    virtual circuit status 47,524 4 145 3 69.1
    SQL*Net message to client 44,674 0 0 0 64.9
    SQL*Net more data from clien 260 0 0 0 0.4
    Background Wait Events for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> ordered by wait time desc, waits desc (idle events last)
    Avg
    Total Wait wait Waits
    Event Waits Timeouts Time (s) (ms) /txn
    control file sequential read 80 0 0 2 0.1
    db file parallel write 61 0 0 1 0.1
    control file parallel write 78 0 0 0 0.1
    log file parallel write 732 0 0 0 1.1
    LGWR wait for redo copy 3 0 0 0 0.0
    rdbms ipc message 993 242 2,054 2069 1.4
    pmon timer 79 79 234 2962 0.1
    smon timer 13 0 228 17520 0.0
    SQL ordered by Gets for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Buffer Gets Threshold: 10000
    -> Note that resources reported for PL/SQL includes the resources used by
    all SQL statements called within the PL/SQL code. As individual SQL
    statements are also reported, it is possible and valid for the summed
    total % to exceed 100
    CPU Elapsd
    Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
    92,160 36 2,560.0 6.4 0.41 0.37 1007205397
    Module: Pharmacy 2.0.174.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    75,042 33 2,274.0 5.2 0.23 0.29 3052506495
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    68,310 27 2,530.0 4.8 0.27 0.27 2037438344
    Module: Pharmacy 2.0.174.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    48,617 31 1,568.3 3.4 0.16 0.22 1186386010
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    45,060 20 2,253.0 3.1 0.17 0.18 3400961035
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    42,976 17 2,528.0 3.0 0.14 0.17 3744553745
    Module: Pharmacy 2.0.174.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    36,114 78 463.0 2.5 0.13 0.11 4262998487
    Module: In Patient 2.1.152.exe
    SQL ordered by Gets for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Buffer Gets Threshold: 10000
    -> Note that resources reported for PL/SQL includes the resources used by
    all SQL statements called within the PL/SQL code. As individual SQL
    statements are also reported, it is possible and valid for the summed
    total % to exceed 100
    CPU Elapsd
    Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'IP' escape '\' and ac.table_name like 'DOCTORVISIT' escape '
    25,102 11 2,282.0 1.8 0.06 0.10 812077776
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    24,984 36 694.0 1.7 0.09 0.07 3956499023
    Module: Pharmacy 2.0.174.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'INVENTORY' escape '\' and ac.table_name like 'DMEDMAST' esca
    23,213 1 23,213.0 1.6 1.59 2.83 2435229694
    Module: SQL*Plus
    BEGIN statspack.snap(i_snap_level=>7); END;
    22,930 10 2,293.0 1.6 0.14 0.09 3466778893
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    22,680 10 2,268.0 1.6 0.08 0.09 3786189544
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    20,340 9 2,260.0 1.4 0.13 0.08 3649693145
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    SQL ordered by Gets for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Buffer Gets Threshold: 10000
    -> Note that resources reported for PL/SQL includes the resources used by
    all SQL statements called within the PL/SQL code. As individual SQL
    statements are also reported, it is possible and valid for the summed
    total % to exceed 100
    CPU Elapsd
    Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
    19,460 42 463.3 1.4 0.09 0.06 3858576624
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    SQL ordered by Reads for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Disk Reads Threshold: 1000
    CPU Elapsd
    Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value
    8,084 4 2,021.0 3.1 0.14 1.08 4198744706
    Module: Out Patient 2.1.41.exe
    Select Max(BillNo) as Bno From PatientsRegistration Where regdt
    = to_date('01/04/2008','dd/mm/yyyy') and regdt <= to_date('31/03/2009','dd/mm/yyyy')
    7,302 1 7,302.0 2.8 0.13 0.51 2116660478
    Module: In Patient 2.1.157.exe
    select discount,discamount from billpharmacy where patientid='PA
    T09212'
    7,302 1 7,302.0 2.8 0.06 0.41 3612969128
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PA
    T09037'
    7,302 1 7,302.0 2.8 0.19 0.51 3981413559
    Module: In Patient 2.1.152.exe
    sELECT * FROM BillPharmacy WHERE BillPharmacy.pATIENtid= 'PAT090
    37' order by to_number((issueno))
    7,300 1 7,300.0 2.8 0.14 0.69 136284863
    Module: In Patient 2.1.152.exe
    delete from billpharmacy where patientid='PAT09037'
    7,299 1 7,299.0 2.8 0.20 0.77 2137420337
    Module: In Patient 2.1.152.exe
    delete from billpharmacy where patientid='PAT09154'
    7,298 1 7,298.0 2.8 0.13 0.43 1007690124
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PA
    T08301'
    7,298 1 7,298.0 2.8 0.13 0.58 3087447381
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PA
    T09154'
    7,061 1 7,061.0 2.7 0.13 0.97 2993688253
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PA
    T09146'
    7,058 1 7,058.0 2.7 0.39 0.76 1202603169
    Module: In Patient 2.1.152.exe
    SELECT BILLHDR.BILLNO, BILLHDR.BILLDT, BILLHDR.BALANCE, BILLHDR.
    TOTAL, BILLHDR.NETAMOUNT,IPINFO.type as orgtype, BILLHDR.PREVAD
    V , IPInfo.IpNO, IPInfo.REGDT,IPInfo.REGTM, IPInfo.Name, IPInfo.
    ADDRESS1,IPINFO.relativenm ,Rooms.roomno , Beds.BEDNO, ROOMTYPES
    , decode(IPINFO.sex,1,'Male','Female')sex,IPINFO.AGE ||' '||dec
    6,640 1 6,640.0 2.5 0.13 1.06 796742944
    Module: In Patient 2.1.152.exe
    SQL ordered by Reads for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Disk Reads Threshold: 1000
    CPU Elapsd
    Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value
    select discount,discamount from billpharmacy where patientid='PA
    T09123'
    4,617 4 1,154.3 1.8 0.19 0.94 2042905630
    Module: Out Patient 2.1.41.exe
    SELECT NVL(Max(MoneyReciept.mrBillNo),0) AS MaxOfBillNob FROM Mo
    neyReciept where generalopd = 0
    4,496 3 1,498.7 1.7 0.06 0.57 2718453880
    Module: Diagnotech 2.2.49.exe
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R208970TS000002' order by trackdate,tracktime
    4,494 3 1,498.0 1.7 0.13 0.74 3290276624
    Module: Diagnotech 2.2.49.exe
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R207032T0000351' order by trackdate,tracktime
    4,451 3 1,483.7 1.7 0.20 0.99 768943678
    Module: Diagnotech 2.2.49.exe
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R208613TS000002' order by trackdate,tracktime
    4,091 4 1,022.8 1.6 0.19 1.62 266509601
    Module: In Patient 2.1.152.exe
    SELECT IPInfo.IPNo ,IPInfo.name,doctorvisit.date_r ,unithdr.drna
    me , doctorvisit.visitid FROM Doctorvisit , IPInfo,unithdr wher
    e Doctorvisit.Patid = IPInfo.PatID and Doctorvisit.doctorid=unit
    hdr.unitid and doctorvisit.date_r >=to_date('06/05/2008','fmdd/m
    m/yyyy') order by IPInfo.IPNo
    3,933 5 786.6 1.5 0.14 1.29 2546712787
    Module: Diagnotech 2.2.49.exe
    Select max(BillNo) as Bno From MoneyReciept where rcdt >= to_dat
    e('01/04/2008','dd/mm/yyyy') and rcdt <= to_date('31/03/2009','d
    d/mm/yyyy')
    3,439 3 1,146.3 1.3 0.25 1.89 2816864569
    Module: Diagnotech 2.2.49.exe
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R207242T0000104' order by trackdate,tracktime
    3,129 2 1,564.5 1.2 0.06 0.88 1803349496
    Module: Diagnotech 2.2.49.exe
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R208962TS000002' order by trackdate,tracktime
    3,065 4 766.3 1.2 0.17 1.30 54282346
    Module: In Patient 2.1.157.exe
    Select * from track where tablenm = 'FRMDOCTORVISIT' and primkey
    id = 'VI048354' order by trackdate,tracktime
    2,834 3 944.7 1.1 0.17 1.57 165470279
    Module: Diagnotech 2.2.49.exe
    SQL ordered by Reads for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Disk Reads Threshold: 1000
    CPU Elapsd
    Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R208926TS000002' order by trackdate,tracktime
    2,769 3 923.0 1.1 0.13 1.28 3812904405
    Module: Diagnotech 2.2.49.exe
    Select * from track where tablenm = 'FRMREPORTING' and primkeyid
    = 'R208892TS000002' order by trackdate,tracktime
    2,730 3 910.0 1.0 0.19 1.21 680462328
    Module: In Patient 2.1.157.exe
    select * from DoctorVisit where Date_r >= to_date('06/05/2008','
    dd/mm/yyyy') and Date_r <= to_date('16/05/2008','dd/mm/yyyy')
    2,526 2 1,263.0 1.0 0.58 1.14 4043595143
    Module: SQL*Plus
    INSERT INTO STATS$SQL_SUMMARY ( SNAP_ID , DBID , INSTANCE_NUMBER
    , TEXT_SUBSET , SHARABLE_MEM , SORTS , MODULE , LOADED_VERSIONS
    , FETCHES , EXECUTIONS , LOADS , INVALIDATIONS , PARSE_CALLS ,
    DISK_READS , BUFFER_GETS , ROWS_PROCESSED , COMMAND_TYPE , ADDRE
    SS , HASH_VALUE , VERSION_COUNT , CPU_TIME , ELAPSED_TIME , OUTL
    2,484 1 2,484.0 0.9 0.19 0.91 33028691
    Module: Diagnotech 2.2.49.exe
    select * from requisitions where upper(reqno) = '180800'
    2,483 1 2,483.0 0.9 0.13 0.93 2943168498
    Module: Diagnotech 2.2.49.exe
    Update Requisitions Set Collected = 0 Where TRIM(ReqID) ='R20987
    8'
    2,482 1 2,482.0 0.9 0.11 0.74 2336722822
    Module: Diagnotech 2.2.49.exe
    Update Requisitions Set Collected = 0 Where TRIM(ReqID) ='R20987
    7'
    2,480 1 2,480.0 0.9 0.06 0.67 650704065
    Module: In Patient 2.1.152.exe
    select sum(can.returnamt) refamt from diagnotech.cancellationhd
    r can,diagnotech.requisitions req where can.reqid = req.reqid an
    SQL ordered by Executions for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Executions Threshold: 100
    CPU per Elap per
    Executions Rows Processed Rows per Exec Exec (s) Exec (s) Hash Value
    283 283 1.0 0.00 0.00 1283498366
    Module: Diagnotech 2.2.49.exe
    Select to_char(sysdate,'fmdd/mm/yyyy HH24:mi:ss am') as abc from
    OPTIONS
    238 76 0.3 0.00 0.00 4274598960
    select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, tim
    estamp#, sample_size, minimum, maximum, distcnt, lowval, hival,
    density, col#, spare1, spare2, avgcln from hist_head$ where obj#
    =:1 and intcol#=:2
    126 126 1.0 0.00 0.00 2168100061
    Module: Diagnotech 2.2.49.exe
    select * from departments where deptid = 'DEP00004'
    114 0 0.0 0.00 0.00 4073347083
    select grantor#, grantee#, privilege#, sequence#, nvl(option$,0)
    from objauth$ where obj#=:1 and col#=:2
    112 112 1.0 0.00 0.00 3687727603
    insert into col$(obj#,name,intcol#,segcol#,type#,length,precisio
    n#,scale,null$,offset,fixedstorage,segcollength,deflength,defaul
    t$,col#,property,charsetid,charsetform,spare1,spare2,spare3)valu
    es(:1,:2,:3,:4,:5,:6,decode(:7,0,null,:7),decode(:5,2,decode(:8,
    -127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,
    99 99 1.0 0.00 0.00 3468666020
    select text from view$ where rowid=:1
    84 84 1.0 0.00 0.00 2997854589
    insert into access$(d_obj#,order#,columns,types) values (:1,:2,:
    3,:4)
    84 84 1.0 0.00 0.00 3951809012
    insert into dependency$(d_obj#,d_timestamp,order#,p_obj#,p_times
    tamp,d_owner#, property)values (:1,:2,:3,:4,:5,:6, :7)
    78 0 0.0 0.00 0.00 3867936055
    Module: Out Patient 2.1.41.exe
    commit
    78 78 1.0 0.00 0.00 4262998487
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'IP' escape '\' and ac.table_name like 'DOCTORVISIT' escape '
    44 44 1.0 0.00 0.00 3216099004
    Module: Diagnotech 2.2.49.exe
    select * from options
    42 42 1.0 0.00 0.00 3858576624
    SQL ordered by Executions for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Executions Threshold: 100
    CPU per Elap per
    Executions Rows Processed Rows per Exec Exec (s) Exec (s) Hash Value
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'IP' escape '\' and ac.table_name like 'IPINFO' escape '\'
    36 540 15.0 0.01 0.01 1007205397
    Module: Pharmacy 2.0.174.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    36 36 1.0 0.00 0.00 3956499023
    Module: Pharmacy 2.0.174.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'INVENTORY' escape '\' and ac.table_name like 'DMEDMAST' esca
    34 34 1.0 0.00 0.00 857250417
    Module: Diagnotech 2.2.46.exe
    select * from departments where deptid = 'DEP00031'
    33 43,442 1,316.4 0.04 0.05 502973950
    Module: Pharmacy 2.0.174.exe
    SELECT substr(UPPER(MedMast.MedNm),1,50) MedNm , MedSubCat.MSCOD
    E ,MEDMAST.POTENCY ,substr(genericnm,1,50) genericnm, sum(dmeddt
    ls.currqty) stock, MedMast.medid FROM MedMast , MedSubCat,dmedd
    tls where UPPER(MEDMAST.MEDNM) LIKE '%%' and medmast.medid = d
    meddtls.medid and MEDMAST.SubCatID = MedSubCat.MSCatID and dmed
    33 132 4.0 0.01 0.01 3052506495
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    31 124 4.0 0.01 0.01 1186386010
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    31 31 1.0 0.00 0.00 3993731530
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    SQL ordered by Executions for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Executions Threshold: 100
    CPU per Elap per
    Executions Rows Processed Rows per Exec Exec (s) Exec (s) Hash Value
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'OTS1' escape '\' and ac.table_name like 'DOCTORINFO' escape
    28 28 1.0 0.00 0.00 737183288
    Module: Diagnotech 2.2.49.exe
    Select * From CReqno
    27 0 0.0 0.00 0.00 246231567
    Module: Pharmacy 2.0.174.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    SQL ordered by Parse Calls for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Parse Calls Threshold: 1000
    % Total
    Parse Calls Executions Parses Hash Value
    283 283 3.99 1283498366
    Module: Diagnotech 2.2.49.exe
    Select to_char(sysdate,'fmdd/mm/yyyy HH24:mi:ss am') as abc from
    OPTIONS
    126 126 1.78 2168100061
    Module: Diagnotech 2.2.49.exe
    select * from departments where deptid = 'DEP00004'
    99 99 1.40 3468666020
    select text from view$ where rowid=:1
    78 78 1.10 3867936055
    Module: Out Patient 2.1.41.exe
    commit
    78 78 1.10 4262998487
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'IP' escape '\' and ac.table_name like 'DOCTORVISIT' escape '
    44 44 0.62 3216099004
    Module: Diagnotech 2.2.49.exe
    select * from options
    42 42 0.59 3858576624
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'IP' escape '\' and ac.table_name like 'IPINFO' escape '\'
    36 36 0.51 1007205397
    Module: Pharmacy 2.0.174.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    36 36 0.51 3956499023
    Module: Pharmacy 2.0.174.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'INVENTORY' escape '\' and ac.table_name like 'DMEDMAST' esca
    34 34 0.48 857250417
    Module: Diagnotech 2.2.46.exe
    SQL ordered by Parse Calls for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Parse Calls Threshold: 1000
    % Total
    Parse Calls Executions Parses Hash Value
    select * from departments where deptid = 'DEP00031'
    33 33 0.47 502973950
    Module: Pharmacy 2.0.174.exe
    SELECT substr(UPPER(MedMast.MedNm),1,50) MedNm , MedSubCat.MSCOD
    E ,MEDMAST.POTENCY ,substr(genericnm,1,50) genericnm, sum(dmeddt
    ls.currqty) stock, MedMast.medid FROM MedMast , MedSubCat,dmedd
    tls where UPPER(MEDMAST.MEDNM) LIKE '%%' and medmast.medid = d
    meddtls.medid and MEDMAST.SubCatID = MedSubCat.MSCatID and dmed
    33 33 0.47 3052506495
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    31 31 0.44 1186386010
    Module: In Patient 2.1.152.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    31 31 0.44 3993731530
    Module: In Patient 2.1.152.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'OTS1' escape '\' and ac.table_name like 'DOCTORINFO' escape
    30 15 0.42 3067006941
    delete from dependency$ where d_obj#=:1
    28 28 0.39 737183288
    Module: Diagnotech 2.2.49.exe
    Select * From CReqno
    27 27 0.38 246231567
    Module: Pharmacy 2.0.174.exe
    select to_char(null), ac.owner, ac.table_name, acc.column_name,
    acc.position, ac.constraint_name from all_constraints ac, all_co
    ns_columns acc where ac.owner=acc.owner and ac.constraint_type=
    'P' and ac.constraint_name=acc.constraint_name and ac.owner lik
    e 'INVENTORY' escape '\' and ac.table_name like 'DISSUEDTLSP' e
    27 27 0.38 445844524
    Module: In Patient 2.1.152.exe
    select nvl(tarrifflg,0) as tf from sourcehdr where sourceid = ''
    SQL ordered by Parse Calls for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Parse Calls Threshold: 1000
    % Total
    Parse Calls Executions Parses Hash Value
    27 27 0.38 2037438344
    Module: Pharmacy 2.0.174.exe
    select null, i.owner, i.table_name, decode (i.uniqueness,'UNIQUE
    ',0,1), null, i.index_name, 3, c.column_position, c.column_name,
    'A', i.distinct_keys, i.leaf_blocks, null from all_indexes i, a
    ll_ind_columns c where i.owner = c.index_owner and i.index_name
    = c.index_name and i.table_owner = c.table_owner and i.table_nam
    22 22 0.31 3073477137
    select u.name,o.name, t.update$, t.insert$, t.delete$, t.enabled
    from obj$ o,user$ u,trigger$ t where t.baseobject=:1 and t.ob
    j#=o.obj# and o.owner#=u.user# order by o.obj#
    Instance Activity Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    Statistic Total per Second per Trans
    CPU used by this session 2,821 11.9 4.1
    CPU used when call started 2,826 11.9 4.1
    CR blocks created 15 0.1 0.0
    DBWR buffers scanned 5,873 24.8 8.5
    DBWR checkpoint buffers written 167 0.7 0.2
    DBWR checkpoints 0 0.0 0.0
    DBWR free buffers found 5,653 23.9 8.2
    DBWR lru scans 17 0.1 0.0
    DBWR make free requests 17 0.1 0.0
    DBWR summed scan depth 5,873 24.8 8.5
    DBWR transaction table writes 1 0.0 0.0
    DBWR undo block writes 228 1.0 0.3
    SQL*Net roundtrips to/from client 89,026 375.6 129.4
    active txn count during cleanout 156 0.7 0.2
    background checkpoints completed 0 0.0 0.0
    background checkpoints started 0 0.0 0.0
    background timeouts 243 1.0 0.4
    branch node splits 0 0.0 0.0
    buffer is not pinned count 1,225,066 5,169.1 1,780.6
    buffer is pinned count 1,069,472 4,512.5 1,554.5
    bytes received via SQL*Net from c 4,334,045 18,287.1 6,299.5
    bytes sent via SQL*Net to client 79,310,906 334,645.2 115,277.5
    calls to get snapshot scn: kcmgss 14,976 63.2 21.8
    calls to kcmgas 942 4.0 1.4
    calls to kcmgcs 166 0.7 0.2
    change write time 19 0.1 0.0
    cleanout - number of ktugct calls 182 0.8 0.3
    cleanouts and rollbacks - consist 5 0.0 0.0
    cleanouts only - consistent read 18 0.1 0.0
    cluster key scan block gets 206,010 869.2 299.4
    cluster key scans 81,803 345.2 118.9
    commit cleanout failures: block l 0 0.0 0.0
    commit cleanout failures: callbac 11 0.1 0.0
    commit cleanout failures: cannot 0 0.0 0.0
    commit cleanouts 2,731 11.5 4.0
    commit cleanouts successfully com 2,720 11.5 4.0
    commit txn count during cleanout 87 0.4 0.1
    consistent changes 15 0.1 0.0
    consistent gets 1,412,564 5,960.2 2,053.2
    consistent gets - examination 572,440 2,415.4 832.0
    cursor authentications 531 2.2 0.8
    data blocks consistent reads - un 15 0.1 0.0
    db block changes 22,877 96.5 33.3
    db block gets 21,323 90.0 31.0
    deferred (CURRENT) block cleanout 1,548 6.5 2.3
    dirty buffers inspected 19 0.1 0.0
    enqueue conversions 52 0.2 0.1
    enqueue releases 4,639 19.6 6.7
    enqueue requests 4,640 19.6 6.7
    enqueue timeouts 0 0.0 0.0
    enqueue waits 0 0.0 0.0
    execute count 6,932 29.3 10.1
    free buffer inspected 19 0.1 0.0
    free buffer requested 258,870 1,092.3 376.3
    hot buffers moved to head of LRU 2,520 10.6 3.7
    immediate (CR) block cleanout app 23 0.1 0.0
    Instance Activity Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    Statistic Total per Second per Trans
    immediate (CURRENT) block cleanou 502 2.1 0.7
    index fast full scans (full) 163 0.7 0.2
    index fetch by key 380,673 1,606.2 553.3
    index scans kdiixs1 86,708 365.9 126.0
    leaf node 90-10 splits 22 0.1 0.0
    leaf node splits 64 0.3 0.1
    logons cumulative 25 0.1 0.0
    messages received 806 3.4 1.2
    messages sent 806 3.4 1.2
    no buffer to keep pinned count 0 0.0 0.0
    no work - consistent read gets 779,017 3,287.0 1,132.3
    opened cursors cumulative 7,669 32.4 11.2
    parse count (failures) 2 0.0 0.0
    parse count (hard) 2,060 8.7 3.0
    parse count (total) 7,091 29.9 10.3
    parse time cpu 434 1.8 0.6
    parse time elapsed 430 1.8 0.6
    physical reads 261,506 1,103.4 380.1
    physical reads direct 3,529 14.9 5.1
    physical writes 3,935 16.6 5.7
    physical writes direct 3,529 14.9 5.1
    physical writes non checkpoint 3,839 16.2 5.6
    pinned buffers inspected 0 0.0 0.0
    prefetched blocks 175,966 742.5 255.8
    prefetched blocks aged out before 0 0.0 0.0
    process last non-idle time 270 1.1 0.4
    recovery blocks read 0 0.0 0.0
    recursive calls 20,832 87.9 30.3
    recursive cpu usage 296 1.3 0.4
    redo blocks written 11,309 47.7 16.4
    redo buffer allocation retries 0 0.0 0.0
    redo entries 12,097 51.0 17.6
    redo log space requests 0 0.0 0.0
    redo log space wait time 0 0.0 0.0
    redo ordering marks 1 0.0 0.0
    redo size 5,480,820 23,125.8 7,966.3
    redo synch time 30 0.1 0.0
    redo synch writes 689 2.9 1.0
    redo wastage 160,348 676.6 233.1
    redo write time 29 0.1 0.0
    redo writer latching time 0 0.0 0.0
    redo writes 732 3.1 1.1
    rollback changes - undo records a 2 0.0 0.0
    rollbacks only - consistent read 10 0.0 0.0
    rows fetched via callback 235,269 992.7 342.0
    session connect time 0 0.0 0.0
    session logical reads 1,433,886 6,050.2 2,084.1
    session pga memory 45,074,044 190,185.8 65,514.6
    session pga memory max 49,946,024 210,742.7 72,596.0
    session uga memory max 3,455,708 14,581.1 5,022.8
    shared hash latch upgrades - no w 54,598 230.4 79.4
    shared hash latch upgrades - wait 0 0.0 0.0
    sorts (disk) 13 0.1 0.0
    sorts (memory) 1,639 6.9 2.4
    sorts (rows) 780,425 3,292.9 1,134.3
    summed dirty queue length 239 1.0 0.4
    Instance Activity Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    Statistic Total per Second per Trans
    switch current to new buffer 172 0.7 0.3
    table fetch by rowid 612,799 2,585.7 890.7
    table fetch continued row 626 2.6 0.9
    table scan blocks gotten 459,367 1,938.3 667.7
    table scan rows gotten 18,523,828 78,159.6 26,924.2
    table scans (long tables) 128 0.5 0.2
    table scans (short tables) 1,655 7.0 2.4
    transaction rollbacks 1 0.0 0.0
    transaction tables consistent rea 0 0.0 0.0
    transaction tables consistent rea 0 0.0 0.0
    user calls 44,888 189.4 65.2
    user commits 686 2.9 1.0
    user rollbacks 2 0.0 0.0
    workarea executions - multipass 0 0.0 0.0
    workarea executions - onepass 24 0.1 0.0
    workarea executions - optimal 2,433 10.3 3.5
    write clones created in foregroun 0 0.0 0.0
    Tablespace IO Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->ordered by IOs (Reads + Writes) desc
    Tablespace
    Av Av Av Av Buffer Av Buf
    Reads Reads/s Rd(ms) Blks/Rd Writes Writes/s Waits Wt(ms)
    DIAGNOTECH
    61,945 261 0.7 1.9 64 0 0 0.0
    IP
    10,753 45 1.2 9.5 23 0 0 0.0
    SYSTEM
    5,668 24 1.2 3.2 22 0 0 0.0
    OTS1
    2,456 10 1.5 7.8 19 0 0 0.0
    TEMP
    1,429 6 0.6 2.5 739 3 0 0.0
    INVENTORY
    478 2 3.5 1.3 49 0 0 0.0
    UNDOTBS1
    0 0 0.0 229 1 0 0.0
    INDX
    15 0 2.0 1.0 0 0 0 0.0
    PAYROLL
    1 0 20.0 4.0 0 0 0 0.0
    File IO Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->ordered by Tablespace, File
    Tablespace Filename
    Av Av Av Av Buffer Av Buf
    Reads Reads/s Rd(ms) Blks/Rd Writes Writes/s Waits Wt(ms)
    DIAGNOTECH F:\ORACLE\ORADATA\NEOSOFT\DIAGNOTECH1.ORA
    61,945 261 0.7 1.9 64 0 0
    INDX F:\ORACLE\ORADATA\NEOSOFT\INDX01.DBF
    15 0 2.0 1.0 0 0 0
    INVENTORY F:\ORACLE\ORADATA\NEOSOFT\INVENTORY1.ORA
    478 2 3.5 1.3 49 0 0
    IP F:\ORACLE\ORADATA\NEOSOFT\IP1.ORA
    10,753 45 1.2 9.5 23 0 0
    OTS1 F:\ORACLE\ORADATA\NEOSOFT\OTS11.ORA
    2,456 10 1.5 7.8 19 0 0
    PAYROLL F:\ORACLE\ORADATA\NEOSOFT\PAYROLL1.ORA
    1 0 20.0 4.0 0 0 0
    SYSTEM F:\ORACLE\ORADATA\NEOSOFT\SYSTEM01.DBF
    5,668 24 1.2 3.2 22 0 0
    TEMP F:\ORACLE\ORADATA\NEOSOFT\TEMP01.DBF
    1,429 6 0.6 2.5 739 3 0
    UNDOTBS1 F:\ORACLE\ORADATA\NEOSOFT\UNDOTBS01.DBF
    0 0 229 1 0
    Buffer Pool Statistics for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> Standard block size Pools D: default, K: keep, R: recycle
    -> Default Pools for other block sizes: 2k, 4k, 8k, 16k, 32k
    Free Write Buffer
    Number of Cache Buffer Physical Physical Buffer Complete Busy
    P Buffers Hit % Gets Reads Writes Waits Waits Waits
    D 44,044 82.0 1,432,475 257,328 406 0 0 0
    Instance Recovery Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> B: Begin snapshot, E: End snapshot
    Targt Estd Log File Log Ckpt Log Ckpt
    MTTR MTTR Recovery Actual Target Size Timeout Interval
    (s) (s) Estd IOs Redo Blks Redo Blks Redo Blks Redo Blks Redo Blks
    B 87 19 3628 65684 64450 184320 64450
    E 87 20 4063 69805 69805 184320 69805
    Buffer Pool Advisory for DB: NEOSOFT Instance: neosoft End Snap: 3
    -> Only rows with estimated physical reads >0 are displayed
    -> ordered by Block Size, Buffers For Estimate (default block size first)
    Size for Size Buffers for Est Physical Estimated
    P Estimate (M) Factr Estimate Read Factor Physical Reads
    D 32 .1 4,004 67.25 19,260,129,810
    D 64 .2 8,008 42.95 12,300,910,895
    D 96 .3 12,012 32.00 9,165,118,680
    D 128 .4 16,016 25.62 7,338,010,607
    D 160 .5 20,020 17.54 5,022,366,182
    D 192 .5 24,024 11.74 3,361,228,965
    D 224 .6 28,028 7.05 2,020,169,694
    D 256 .7 32,032 3.94 1,127,930,012
    D 288 .8 36,036 2.32 663,835,521
    D 320 .9 40,040 1.44 413,674,540
    D 352 1.0 44,044 1.00 286,377,525
    D 384 1.1 48,048 0.75 215,831,108
    D 416 1.2 52,052 0.60 171,670,371
    D 448 1.3 56,056 0.51 145,708,247
    D 480 1.4 60,060 0.45 128,439,943
    D 512 1.5 64,064 0.40 114,053,332
    D 544 1.5 68,068 0.37 104,584,674
    D 576 1.6 72,072 0.34 96,792,591
    D 608 1.7 76,076 0.32 92,596,531
    D 640 1.8 80,080 0.31 89,929,979
    PGA Aggr Target Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> B: Begin snap E: End snap (rows dentified with B or E contain data
    which is absolute i.e. not diffed over the interval)
    -> PGA cache hit % - percentage of W/A (WorkArea) data processed only in-memory
    -> Auto PGA Target - actual workarea memory target
    -> W/A PGA Used - amount of memory used for all Workareas (manual + auto)
    -> %PGA W/A Mem - percentage of PGA memory allocated to workareas
    -> %Auto W/A Mem - percentage of workarea memory controlled by Auto Mem Mgmt
    -> %Man W/A Mem - percentage of workarea memory under manual control
    PGA Cache Hit % W/A MB Processed Extra W/A MB Read/Written
    88.2 213 29
    %PGA %Auto %Man
    PGA Aggr Auto PGA PGA Mem W/A PGA W/A W/A W/A Global Mem
    Target(M) Target(M) Alloc(M) Used(M) Mem Mem Mem Bound(K)
    B 24 7 24.4 0.4 1.6 .0 100.0 1,228
    E 24 8 23.8 0.0 .0 .0 .0 1,228
    PGA Aggr Target Histogram for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> Optimal Executions are purely in-memory operations
    Low High
    Optimal Optimal Total Execs Optimal Execs 1-Pass Execs M-Pass Execs
    8K 16K 2,000 2,000 0 0
    16K 32K 55 55 0 0
    32K 64K 28 28 0 0
    64K 128K 50 50 0 0
    128K 256K 110 110 0 0
    256K 512K 26 26 0 0
    512K 1024K 176 158 18 0
    1M 2M 8 4 4 0
    4M 8M 2 0 2 0
    PGA Memory Advisory for DB: NEOSOFT Instance: neosoft End Snap: 3
    -> When using Auto Memory Mgmt, minimally choose a pga_aggregate_target value
    where Estd PGA Overalloc Count is 0
    Estd Extra Estd PGA Estd PGA
    PGA Target Size W/A MB W/A MB Read/ Cache Overalloc
    Est (MB) Factr Processed Written to Disk Hit % Count
    12 0.5 417.1 207.2 67.0 1
    18 0.8 417.1 89.3 82.0 0
    24 1.0 417.1 46.4 90.0 0
    29 1.2 417.1 46.4 90.0 0
    34 1.4 417.1 46.4 90.0 0
    38 1.6 417.1 13.2 97.0 0
    43 1.8 417.1 11.1 97.0 0
    48 2.0 417.1 11.1 97.0 0
    72 3.0 417.1 11.1 97.0 0
    96 4.0 417.1 11.1 97.0 0
    144 6.0 417.1 0.0 100.0 0
    192 8.0 417.1 0.0 100.0 0
    Rollback Segment Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->A high value for "Pct Waits" suggests more rollback segments may be required
    ->RBS stats may not be accurate between begin and end snaps when using Auto Undo
    managment, as RBS may be dynamically created and dropped as needed
    Trans Table Pct Undo Bytes
    RBS No Gets Waits Written Wraps Shrinks Extends
    0 15.0 0.00 0 0 0 0
    1 412.0 0.00 831,990 1 0 1
    2 48.0 0.00 61,500 0 0 0
    3 87.0 0.00 132,404 0 0 0
    4 79.0 0.00 66,626 0 0 0
    5 71.0 0.00 91,284 0 0 0
    6 40.0 0.00 15,474 0 0 0
    7 660.0 0.00 547,536 1 0 1
    8 168.0 0.00 21,762 0 0 0
    9 86.0 0.00 10,108 0 0 0
    10 295.0 0.00 156,468 0 0 0
    Rollback Segment Storage for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->Optimal Size should be larger than Avg Active
    RBS No Segment Size Avg Active Optimal Size Maximum Size
    0 385,024 0 385,024
    1 9,625,600 806,999 16,900,096
    2 5,365,760 711,094 8,511,488
    3 5,365,760 664,381 9,560,064
    4 5,365,760 763,735 8,511,488
    5 5,365,760 672,648 9,625,600
    6 5,365,760 677,906 9,560,064
    7 6,414,336 647,093 8,511,488
    8 5,365,760 628,652 10,608,640
    9 5,365,760 769,325 9,560,064
    10 5,365,760 622,015 9,560,064
    Undo Segment Summary for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> Undo segment block stats:
    -> uS - unexpired Stolen, uR - unexpired Released, uU - unexpired reUsed
    -> eS - expired Stolen, eR - expired Released, eU - expired reUsed
    Undo Undo Num Max Qry Max Tx Snapshot Out of uS/uR/uU/
    TS# Blocks Trans Len (s) Concurcy Too Old Space eS/eR/eU
    1 695 1,032,965 12 1 0 0 0/0/0/0/0/0
    Undo Segment Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> ordered by Time desc
    Undo Num Max Qry Max Tx Snap Out of uS/uR/uU/
    End Time Blocks Trans Len (s) Concy Too Old Space eS/eR/eU
    16-May 10:22 695 ######## 12 1 0 0 0/0/0/0/0/0
    Latch Activity for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->"Get Requests", "Pct Get Miss" and "Avg Slps/Miss" are statistics for
    willing-to-wait latch get requests
    ->"NoWait Requests", "Pct NoWait Miss" are for no-wait latch get requests
    ->"Pct Misses" for both should be very close to 0.0
    Pct Avg Wait Pct
    Get Get Slps Time NoWait NoWait
    Latch Requests Miss /Miss (s) Requests Miss
    Consistent RBA 732 0.0 0 0
    FAL request queue 1 0.0 0 0
    FIB s.o chain latch 12 0.0 0 0
    FOB s.o list latch 27 0.0 0 0
    SQL memory manager latch 2 0.0 0 79 0.0
    SQL memory manager worka 7,245 0.0 0 0
    active checkpoint queue 169 0.0 0 0
    archive control 10 0.0 0 0
    archive process latch 7 0.0 0 0
    cache buffer handles 12,078 0.0 0 0
    cache buffers chains 2,602,999 0.0 0.0 0 506,781 0.0
    cache buffers lru chain 858 0.0 0 615,593 0.0
    channel handle pool latc 37 0.0 0 0
    channel operations paren 265 0.0 0 0
    checkpoint queue latch 30,545 0.0 0 893 0.0
    child cursor hash table 16,079 0.0 0 0
    dml lock allocation 2,674 0.0 0 0
    dummy allocation 43 0.0 0 0
    enqueue hash chains 9,313 0.0 0 0
    enqueues 9,405 0.0 0 0
    event group latch 5 0.0 0 0
    hash table column usage 0 0 55,565 0.0
    hash table modification 1 0.0 0 0
    kmcptab latch 78 0.0 0 0
    kmcpvec latch 0 0 78 0.0
    ktm global data 13 0.0 0 0
    lgwr LWN SCN 742 0.0 0 0
    library cache 193,957 0.0 0.0 0 6,959 0.4
    library cache load lock 110 0.0 0 0
    library cache pin 63,420 0.0 0 0
    library cache pin alloca 43,208 0.0 0 0
    list of block allocation 49 0.0 0 0
    loader state object free 34 0.0 0 0
    message pool operations 26 0.0 0 0
    messages 2,866 0.0 0 0
    mostly latch-free SCN 742 0.0 0 0
    multiblock read objects 164,572 0.0 0.0 0 0
    ncodef allocation latch 3 0.0 0 0
    object stats modificatio 1,669 0.0 0 0
    post/wait queue 1,029 0.0 0 683 0.0
    process allocation 11 0.0 0 5 0.0
    process group creation 11 0.0 0 0
    redo allocation 13,617 0.0 0.0 0 0
    redo copy 0 0 12,145 0.0
    redo writing 2,533 0.0 0 0
    row cache enqueue latch 215,027 0.0 0.0 0 0
    row cache objects 218,418 0.0 0.0 0 472 0.0
    sequence cache 99 0.0 0 0
    session allocation 8,683 0.0 0 0
    session idle bit 94,091 0.0 0 0
    Latch Activity for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->"Get Requests", "Pct Get Miss" and "Avg Slps/Miss" are statistics for
    willing-to-wait latch get requests
    ->"NoWait Requests", "Pct NoWait Miss" are for no-wait latch get requests
    ->"Pct Misses" for both should be very close to 0.0
    Pct Avg Wait Pct
    Get Get Slps Time NoWait NoWait
    Latch Requests Miss /Miss (s) Requests Miss
    session switching 3 0.0 0 0
    session timer 80 0.0 0 0
    shared pool 160,825 0.0 0.0 0 0
    sim partition latch 0 0 35 0.0
    simulator hash latch 63,337 0.0 0 0
    simulator lru latch 4,437 0.0 0 16,447 0.0
    sort extent pool 129 0.0 0 0
    transaction allocation 47 0.0 0 0
    transaction branch alloc 3 0.0 0 0
    undo global data 3,091 0.0 0 0
    user lock 114 0.0 0 0
    virtual circuit buffers 540,157 0.4 0.0 0 0
    virtual circuit queues 256,196 0.0 0.0 0 0
    virtual circuits 89,002 0.0 0 0
    Top 5 Logical Reads per Segment for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Segment Logical Reads Threshold: 10000
    Subobject Obj. Logical
    Owner Tablespace Object Name Name Type Reads %Total
    DIAGNOTECH DIAGNOTECH REQUISITIONS TABLE 162,064 11.66
    SYS SYSTEM I_OBJ1 INDEX 115,328 8.30
    SYS SYSTEM OBJ$ TABLE 113,328 8.15
    SYS SYSTEM I_IND1 INDEX 109,584 7.88
    IP IP BILLPHARMACY TABLE 89,328 6.43
    Top 5 Physical Reads per Segment for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Segment Physical Reads Threshold: 1000
    Subobject Obj. Physical
    Owner Tablespace Object Name Name Type Reads %Total
    IP IP BILLPHARMACY TABLE 86,212 34.43
    DIAGNOTECH DIAGNOTECH REQUISITIONS TABLE 79,487 31.74
    DIAGNOTECH DIAGNOTECH TRACK TABLE 33,193 13.25
    IP SYSTEM TRACK TABLE 17,926 7.16
    OTS1 OTS1 MONEYRECIEPT TABLE 10,036 4.01
    Top 5 Row Lock Waits per Segment for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    -> End Segment Row Lock Waits Threshold: 100
    Row
    Subobject Obj. Lock
    Owner Tablespace Object Name Name Type Waits %Total
    IP IP BILLID4064 INDEX 1 100.00
    Dictionary Cache Stats for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->"Pct Misses" should be very low (< 2% in most cases)
    ->"Cache Usage" is the number of cache entries being used
    ->"Pct SGA" is the ratio of usage to allocated size for that cache
    Get Pct Scan Pct Mod Final
    Cache Requests Miss Reqs Miss Reqs Usage
    dc_histogram_defs 22,135 1.1 0 0 3,348
    dc_object_ids 26,251 0.0 0 0 625
    dc_objects 4,895 0.1 0 15 960
    dc_profiles 21 0.0 0 0 1
    dc_rollback_segments 273 0.0 0 0 12
    dc_segments 11,239 0.1 0 0 604
    dc_sequences 3 33.3 0 3 6
    dc_tablespaces 19,449 0.0 0 0 5
    dc_user_grants 2,814 0.0 0 0 17
    dc_usernames 886 0.0 0 0 15
    dc_users 22,542 0.0 0 0 20
    Library Cache Activity for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    ->"Pct Misses" should be very low
    Get Pct Pin Pct Invali-
    Namespace Requests Miss Requests Miss Reloads dations
    BODY 445 0.0 445 0.0 0 0
    CLUSTER 397 0.0 121 0.0 0 0
    SQL AREA 7,041 28.0 24,030 16.9 55 23
    TABLE/PROCEDURE 8,324 0.0 15,082 0.6 18 0
    TRIGGER 953 0.0 953 0.0 0 0
    Shared Pool Advisory for DB: NEOSOFT Instance: neosoft End Snap: 3
    -> Note there is often a 1:Many correlation between a single logical object
    in the Library Cache, and the physical number of memory objects associated
    with it. Therefore comparing the number of Lib Cache objects (e.g. in
    v$librarycache), with the number of Lib Cache Memory Objects is invalid
    Estd
    Shared Pool SP Estd Estd Estd Lib LC Time
    Size for Size Lib Cache Lib Cache Cache Time Saved Estd Lib Cache
    Estim (M) Factr Size (M) Mem Obj Saved (s) Factr Mem Obj Hits
    104 .5 97 21,986 47,321 1.0 22,910,514
    128 .6 120 27,657 47,381 1.0 22,988,994
    152 .8 143 32,965 47,422 1.0 23,048,924
    176 .9 166 38,101 47,451 1.0 23,094,145
    200 1.0 189 42,541 47,474 1.0 23,126,910
    224 1.1 212 47,258 47,492 1.0 23,155,651
    248 1.2 235 52,101 47,508 1.0 23,180,673
    272 1.4 258 56,800 47,521 1.0 23,202,200
    296 1.5 283 61,512 47,532 1.0 23,220,564
    320 1.6 306 65,892 47,540 1.0 23,235,720
    344 1.7 329 70,532 47,547 1.0 23,246,826
    368 1.8 352 75,208 47,553 1.0 23,257,346
    392 2.0 375 81,494 47,559 1.0 23,268,801
    416 2.1 411 88,685 47,565 1.0 23,279,344
    SGA Memory Summary for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    SGA regions Size in Bytes
    Database Buffers 369,098,752
    Fixed Size 455,784
    Redo Buffers 1,191,936
    Variable Size 436,207,616
    sum 806,954,088
    SGA breakdown difference for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    Pool Name Begin value End value % Diff
    java free memory 83,886,080 83,886,080 0.00
    large free memory 63,891,136 64,350,992 0.72
    large session heap 19,994,944 19,535,088 -2.30
    shared 1M buffer 2,098,176 2,098,176 0.00
    shared Checkpoint queue 1,129,216 1,129,216 0.00
    shared DML lock 1,028,764 1,028,764 0.00
    shared FileOpenBlock 6,564,072 6,564,072 0.00
    shared KGK heap 3,756 3,756 0.00
    shared KGLS heap 2,584,540 2,431,584 -5.92
    shared KQR M PO 2,844,672 2,768,896 -2.66
    shared KQR S PO 249,880 250,652 0.31
    shared KQR S SO 7,936 7,936 0.00
    shared KSXR pending messages que 841,036 841,036 0.00
    shared KSXR receive buffers 1,033,000 1,033,000 0.00
    shared MTTR advisory 59,288 59,288 0.00
    shared PL/SQL DIANA 3,179,412 3,015,708 -5.15
    shared PL/SQL MPCODE 388,924 241,096 -38.01
    shared PLS non-lib hp 3,688 3,688 0.00
    shared VIRTUAL CIRCUITS 2,564,620 2,564,620 0.00
    shared db_handles 1,080,000 1,080,000 0.00
    shared dictionary cache 2,137,216 2,137,216 0.00
    shared enqueue 1,676,824 1,676,824 0.00
    shared event statistics per sess 18,675,020 18,675,020 0.00
    shared fixed allocation callback 388 388 0.00
    shared free memory 14,167,016 15,470,156 9.20
    shared joxs heap init 4,220 4,220 0.00
    shared ktlbk state objects 778,960 778,960 0.00
    shared library cache 43,962,768 43,051,344 -2.07
    shared message pool freequeue 665,792 665,792 0.00
    shared miscellaneous 41,742,904 42,080,748 0.81
    shared parameters 3,224 9,272 187.59
    shared processes 1,500,000 1,500,000 0.00
    shared sessions 3,998,480 3,998,480 0.00
    shared sim memory hea 195,212 195,212 0.00
    shared sql area 111,345,832 111,177,960 -0.15
    shared table definiti 16,576 15,240 -8.06
    shared transaction 1,852,092 1,852,092 0.00
    shared trigger defini 26,236 24,148 -7.96
    shared trigger inform 592 592 0.00
    shared trigger source 304 304 0.00
    buffer_cache 369,098,752 369,098,752 0.00
    fixed_sga 455,784 455,784 0.00
    log_buffer 1,180,672 1,180,672 0.00
    init.ora Parameters for DB: NEOSOFT Instance: neosoft Snaps: 1 -3
    End value
    Parameter Name Begin value (if different)
    background_dump_dest F:\oracle\admin\neosoft\bdump
    compatible 9.2.0.0.0
    control_files F:\oracle\oradata\neosoft\control
    core_dump_dest F:\oracle\admin\neosoft\cdump
    db_block_size 8192
    db_cache_size 369098752
    db_domain
    db_file_multiblock_read_count 16
    db_name neosoft
    dispatchers (PROTOCOL=TCP)
    fast_start_mttr_target 300
    hash_join_enabled TRUE
    instance_name neosoft
    java_pool_size 83886080
    large_pool_size 83886080
    open_cursors 300
    pga_aggregate_target 25165824
    processes 1500
    query_rewrite_enabled FALSE
    remote_login_passwordfile EXCLUSIVE
    shared_pool_size 209715200
    sort_area_size 524288
    star_transformation_enabled FALSE
    timed_statistics TRUE
    undo_management AUTO
    undo_retention 10800
    undo_tablespace UNDOTBS1
    user_dump_dest F:\oracle\admin\neosoft\udump
    End of Report

    How did you calculated all these ratios............I looked through the formatted output of the Statspack report, specifically the setion "SQL ordered by reads for DB" and found these SQL statements which are performing a large number of physical reads. Most of the SQL statements have similar WHERE clauses, except for the constants to the right of the = :
    Physical Reads  Executions  Reads per Exec %Total Time (s)  Time (s) Hash Value
              8,084            4        2,021.0    3.1     0.14      1.08 4198744706
    Module: Out Patient 2.1.41.exe
    Select Max(BillNo) as Bno From PatientsRegistration Where regdt
    = to_date('01/04/2008','dd/mm/yyyy') and regdt <= to_date('31/03/2009','dd/mm/yyyy')
              7,302            1        7,302.0    2.8     0.13      0.51 2116660478
    Module: In Patient 2.1.157.exe
    select discount,discamount from billpharmacy where patientid='PAT09212'
              7,302            1        7,302.0    2.8     0.06      0.41 3612969128
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PAT09037'
              7,302            1        7,302.0    2.8     0.19      0.51 3981413559
    Module: In Patient 2.1.152.exe
    sELECT * FROM BillPharmacy WHERE BillPharmacy.pATIENtid= 'PAT09037' order by to_number((issueno))
              7,300            1        7,300.0    2.8     0.14      0.69  136284863
    Module: In Patient 2.1.152.exe
    delete from billpharmacy where patientid='PAT09037'
              7,299            1        7,299.0    2.8     0.20      0.77 2137420337
    Module: In Patient 2.1.152.exe
    delete from billpharmacy where patientid='PAT09154'
              7,298            1        7,298.0    2.8     0.13      0.43 1007690124
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PAT08301'
              7,298            1        7,298.0    2.8     0.13      0.58 3087447381
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PAT09154'
              7,061            1        7,061.0    2.7     0.13      0.97 2993688253
    Module: In Patient 2.1.152.exe
    select discount,discamount from billpharmacy where patientid='PAT09146'
    and on what basis you one should have to find out
    which query causing the problem....
    i also wanted to learn how to read the
    statspack.........I personally do not like Statspack reports, but there are several very good sources for understanding Statspack reports:
    http://jonathanlewis.wordpress.com/2006/11/29/analysing-statspack-pt1/
    http://jonathanlewis.wordpress.com/statspack-examples/
    Metalink Note:232443.1 (How to Identify Resource Intensive SQL for Tuning)
    Metalink Note:390374.1 (Oracle Performance Diagnostic Guide (OPDG))
    Metalink Note:228913.1 (Systemwide Tuning using STATSPACK Reports)
    Charles Hooper
    IT Manager/Oracle DBA
    K&M Machine-Fabricating, Inc.

  • Statistics Collection to a Table

    Hello,
    i need to gather statistics for few tables from a schema, to a separate table. Basically i have gather the stats into newly created table. my question is how can i do this? i know how to generate statistics using the dbms statspack, but do not have any idea of how to gather these statistics to a separate table>
    could any one shed some light here..
    Thanks..

    Hello,
    i created a table using the following dbms_stats package.
    BEGIN
    DBMS_STATS.create_stat_table (
    ownname => 'TEST',
    stattab => 'stats_table',
    tblspace => 'users');
    END;
    when this table created using the above script it created with the following columns.
    STATID VARCHAR2(30 BYTE),
    TYPE CHAR(1 BYTE),
    VERSION NUMBER,
    FLAGS NUMBER,
    C1 VARCHAR2(30 BYTE),
    C2 VARCHAR2(30 BYTE),
    C3 VARCHAR2(30 BYTE),
    C4 VARCHAR2(30 BYTE),
    C5 VARCHAR2(30 BYTE),
    N1 NUMBER,
    N2 NUMBER,
    N3 NUMBER,
    N4 NUMBER,
    N5 NUMBER,
    N6 NUMBER,
    N7 NUMBER,
    N8 NUMBER,
    N9 NUMBER,
    N10 NUMBER,
    N11 NUMBER,
    N12 NUMBER,
    D1 DATE,
    R1 RAW(32),
    R2 RAW(32),
    CH1 VARCHAR2(1000 BYTE)
    how can I interpret what column is for what? for example C1 to C5, N1 to N12 or R1, CH1 what do they mean?
    also will be able to get any info regarding the COst of the SQL statement that took to run? if not how can i obtain that info?
    Then I gathered statistics for one table to test.
    exec dbms_stats.gather_table_stats(ownname=>'TEST',
    estimate_percent=>10,
    statown=>'TEST',
    tabname=>'ord_receipts',
    stattab=>'STATS_TABLE',
    statid=>'TESTING');
    the data inserted into STATS_TABLE, but could not understand.
    I need to run these statistics on daily basis and save to a diffferent table daily . for example today is 01/01/2012 should have its own table for stats to collect and 01/02/2012 should have another table to collect the statistics.
    is there any way that i can dynamically incorporated when gathering the statistics, to create the STATS_TABLE concatanated with sysdate daily to analyze the statistics?
    Thanks..

  • How to collect DB stats from 10g database

    Hi All,
    We have a production Oracle 10.1.0.5.0 database. We are facing performance issue in the application side. So we are in process of analysing the performance issues in both database and application side. Application vendor is asking for DB stats of the primary schema.
    I dont know anything about database performance tuning activities like collecting DB stats, using Statspacks etc...
    Kindly help me to understand about DB stats and what is the best way collect the required DB statistics information.
    Thanks in advance.
    Aruna

    Useful Link:
    http://www.oradev.com/create_statistics.jsp
    ## Gather schema stats
    begin
    dbms_stats.gather_schema_stats(ownname=>'SYSLOG');
    end;
    ## Gather a particular table stats of a schema
    begin
    DBMS_STATS.gather_table_stats(ownname=>'syslog',tabname=>'logs');
    end;
    Regards
    Asif Kabir
    --mark the answer as correct/helpful                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • 9i DB statspack

    Hi Brother,
    I am using 9i and install statspack. when I run spauto.sql to schedule collect data. normally the dbms job will collect data by hour and shown the next run time. but on my 9i DB, the job is stop. How can I check the dbms work or not?
    SQL> select job, next_date, next_sec from user_jobs;
    JOB NEXT_DATE NEXT_SEC
    5 15-MAR-09 12:30:00

    Same view, user_jobs, just a couple additional columns
    select job, next_date, next_sec, failures, broken from user_jobs;The background dump destination is the directory specified by the initialization parameter BACKGROUND_DUMP_DEST. Try this in SQL*Plus
    show parameter BACKGROUND_DUMP_DESTThe trace files would be in the format <SID>jNNN<PID>.trc

  • STATSPACK vs AWR - 10g DB

    Hi,
    I am trying to rewrite a custom Oracle DB Statistics report which used to run on PERFSTAT.statspack in 9i which is no longer running in our 10g RAC as we are using AWR. Apart from a lot of custom queries we used STATSPACK.STAT_CHANGES to get a long list of params and kept in our custom tables but in 10g AWR I don't see such procedure. I checked dbms_workload_repository pkg but doesn't help. Is there any replacement for that procedure in AWR to get those params.
    Also is there any doc which has the ER Model of AWR for better understanding and a comparative study of STATSPACK to help us rewrite existing programs.
    Appreciate any help
    cpa

    All queries from the AWR report comes from the DBA_HIST tables and these are pulled from the DBMS_SWRF_REPORT_INTERNAL package body.
    AWR is not really different from Statspack, the main difference is the data collection and repository architecture (AWR repository) and how this data is being utilized (advisors and metrics).
    But as for the AWR tables (DBA_HIST) there are counterpart tables in Statspack.. and possibly achieve similar results.
    dba_hist_snapshot = STATS$SNAPSHOT
    dba_hist_osstat = STATS$OSSTAT
    dba_hist_sys_time_model = STATS$SYS_TIME_MODEL
    dba_hist_sysstat = STATS$SYSSTAT
    Also another issue you may have when doing your porting of Statspack reports to AWR is the SNAP_TIME and END_INTERVAL_TIME data type differences
    SNAP_TIME = is for Statspack which is based on DATE data type
    END_INTERVAL_TIME = is for AWR which is based on TIMESTAMP data type
    So my simple query to get the SNAP duration in minutes in Statspack is this:
    (s1.snap_time-s0.snap_time)*24*60 dur
    While on AWR I have to do this:
    round(EXTRACT(DAY FROM s1.END_INTERVAL_TIME - s0.END_INTERVAL_TIME) * 1440
    + EXTRACT(HOUR FROM s1.END_INTERVAL_TIME - s0.END_INTERVAL_TIME) * 60
    + EXTRACT(MINUTE FROM s1.END_INTERVAL_TIME - s0.END_INTERVAL_TIME)
    + EXTRACT(SECOND FROM s1.END_INTERVAL_TIME - s0.END_INTERVAL_TIME) / 60, 2) dur
    You can see my example here http://karlarao.wordpress.com/2010/01/31/workload-characterization-using-dba_hist-tables-and-ksar/
    - Karl Arao
    karlarao.wordpress.com
    karlarao.tiddlyspot.com

  • Statspack report in RAC

    hi masters,
    we have 2 node RAC on RHEL 4.7 (both) with same parameters set.
    i would like to know, if for performance tuning we need report of both RAc node and database, or statspack report of both RAC node will do???
    i have collected report for both nodes but not database, as i think instances on nodes represent the load on database....
    please correct if i ma wrong....
    any suggestion is appreciable//
    thanks and regards
    VD

    db_file_multiblock_read_count its a dynamic parameter,
    db_file_multiblock_read_count is one of the parameters used to minimize I/O during full table scans. It specifies the maximum number of blocks read in one I/O operation during a sequential scan. The total number of I/Os needed to perform a full table scan depends on such factors as the size of the table, the multiblock read count, and whether parallel execution is being utilized for the operation.
    The maximum value is always less than the operating system's maximum I/O size expressed (NEED TO FIND OUT WHAT THIS IS AT THE O/S LEVEL) as Oracle blocks ((max I/O size)/db_block_size). If set to a value greater than the maximum, then the maximum is used. See db_block_size before setting.
    Note the relationship between db_block_size and db_file_multiblock_read_count. At the physical level in UNIX, Oracle always reads in a minimum of 64K blocks. Therefore, the values of db_file_multiblock_read_count and db_block_size should be set such that their product is 64K. For example, the following table shows the recommended settings based upon the db_block_size:
    db_block_size     db_file_multiblock_read_count value     
    4K     16     
    8K     8     
    16K     4     
    32K     2
    In that case, you make sure the reporters have a tnsnames.ora that says SERVER=DEDICATED and the OLTP-type people use one that has SERVER=SHARED in it; configure the DISPATCHERS and SHARED_SERVER parameters for the instance and then those that can benefit from shared servers can do so and those that wouldn't won't be stealing shared processes from those that can!
    sql>select server from gv$session;
    Cheers,
    Raaam...!!

Maybe you are looking for