1

您好,我在 dba_hist_sqlstat 视图中发现了一些 sql_ids 统计信息的奇怪情况。当执行值为零时,这些似乎具有非零的经过时间值。我不明白这怎么可能。也许在会话不活动或有等待事件的情况下。你有没有遇到过类似的情况,这意味着什么?

select sql_id, plan_hash_value, snap_id, sum(executions_delta), sum(elapsed_time_delta) from dba_hist_sqlstat group by sql_id, plan_hash_value, snap_id having sum(executions_delta) = 0;

SQL_ID        PLAN_HASH_VALUE SNAP_ID SUM(EXECUTIONS_DELTA) SUM(ELAPSED_TIME_DELTA)
------------- --------------- ------- --------------------- -----------------------        
0v3dvmc22qnam               0   14212                     0                     116 
cfz686a6qp0kg                   14223                     0                       0 
7ng34ruy5awxq                   14203                     0                       0 
b07vcvuxryvg9      2129701755   14219                     0                       0 
czvfg1255s5zg       775635102   14202                     0                       0 
b07vcvuxryvg9                   14209                     0                       0 
cfz686a6qp0kg                   14201                     0                       0 
b07vcvuxryvg9      2129701755   14201                     0                       0 
5rxbazwmcdfaz               0   14202                     0                    1263 
4

1 回答 1

1

如果您只查看单个快照,跨越多个快照的长时间运行的查询似乎有执行时间而没有任何执行。否则 EXECUTIONS_DELTA 的总和将不正确。

在一个会话中,创建一个表并启动一个长时间运行的查询:

create table test3 as
select level a from dual connect by level <= 100000;

select count(*) from test3 cross join test3 cross join test3;

在运行时,打开另一个会话并创建多个快照:

begin
    dbms_workload_repository.create_snapshot;
    dbms_lock.sleep(5);
    dbms_workload_repository.create_snapshot;
end;
/

使用 V$SQL 查找 SQL_ID,但如果使用与上面完全相同的文本,它将与下面相同。查询执行只统计在一个快照中,但时间记录在两个快照中。

select sql_id, plan_hash_value, snap_id,
    sum(executions_delta),
    sum(elapsed_time_delta)
from dba_hist_sqlstat
where sql_id = '09pgf63pczkxg'
group by sql_id, plan_hash_value, snap_id;

SQL_ID        PLAN_HASH_VALUE SNAP_ID SUM(EXECUTIONS_DELTA) SUM(ELAPSED_TIME_DELTA)
09pgf63pczkxg 3377121179      5570    1                     22001734
09pgf63pczkxg 3377121179      5571    0                      6010267
于 2014-03-27T05:13:49.990 回答