When I create an awr report within two snapshots say 24139 and 24140 , I get from the part of "SQL ordered by Elapsed Time" the following information:
SQL ordered by Elapsed Time DB/Inst: DEVC/DEVC Snaps: 24139-24140
-> Resources reported for PL/SQL code includes the resources used by all SQL
statements called by the code.
-> % Total DB Time is the Elapsed Time of the SQL statement divided
into the Total Database Time multiplied by 100
OUTPUT
------------------------------------------------------------------
Elapsed CPU Elap per % Total
Time (s) Time (s) Executions Exec (s) DB Time SQL Id
---------- ---------- ------------ ---------- ------- -------------
39 39 2 19.7 14.4 dccxnr2d9b3xd
So far so good.
The problem is that I want to retrieve the same information from the DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY for the same snapshot interval I get:
exec dbms_sqltune.create_sqlset ('MYSQLSET2');
DECLARE
cur DBMS_SQLTUNE.SQLSET_CURSOR;
BEGIN
OPEN cur FOR
SELECT VALUE(P)
FROM table(
DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(24139,24140)) P;
Does anyone have an ideia why the values are different while query the same repository?
I need to retrieve the correct information and I don't know which of the sources I should rely.
Thank you in advance for any help
LKBrwn,
Thank you very much for your answer.
I completely agree with you.
The problem is that, as far as I understand, the procedure DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(24139,24140)) is computing the values in the same way as the AWR report. Otherwise, why does it takes as arguments two snapshots?
I need to retrieve information about query performance (not as a report but as a query output to be used in OS scripts)
The problem is that I really don't know where to rely upon the information that I retrieve from two different sources. Let me explain:
When I create an AWR report within two snapshots say 24139 and 24140 , I get from the part of "SQL ordered by Elapsed Time" the following information:
SQL ordered by Elapsed Time DB/Inst: DEVC/DEVC Snaps: 24139-24140
-> Resources reported for PL/SQL code includes the resources used by all SQL
statements called by the code.
-> % Total DB Time is the Elapsed Time of the SQL statement divided
into the Total Database Time multiplied by 100
OUTPUT (for sql_id = dccxnr2d9b3xd)
Elapsed
Time(s)
39
CPU
Time(s)
39
Executions
2
Elap per %
Exec (s)
19.7
Total
DB Time
14.4
SQL Id
dccxnr2d9b3xd
So far so good.
Querying the I get the conclusion that AWR report in fact is computing the delta values of the snapshots ( snap(n) - snap(n-1) ), for example for executions number:
select snap_id, executions_total from dba_hist_sqlstat
where sql_id ='dccxnr2d9b3xd';
The problem is that when I want to retrieve the same information from the DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY whithin the same snapshot interval as follow:
DECLARE
cur DBMS_SQLTUNE.SQLSET_CURSOR;
BEGIN
OPEN cur FOR
SELECT VALUE(P)
FROM table(
DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(24139,24140)) P;
When I query the previous sqlset_name I get 3 as the number of executions for sql_id ='dccxnr2d9b3xd' withing the same snapshot interval.
Due this, I wondering myself if this function (DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(snap_id1, spnap_id2)) ought compute the values in the same delta way as the AWR report.
Can anyone please give me an explanation/interpretation about the difference in both results?
Bookmarks