0

以下のクエリは、データベース内のすべてのテーブルの「論理読み取り」を時間単位で出力します。各snap_idは1時間の時間枠内にあります。

SELECT
    a.snap_id,
    e.begin_interval_time,
    e.end_interval_time,
    owner               as schema,
    object_name         AS table_name,
    logical_reads_delta as logical_reads_per_table
FROM
    dba_hist_seg_stat     a,
    dba_hist_seg_stat_obj b,
    dba_hist_sqlstat      c,
    dba_hist_snapshot     e
WHERE
        owner      !=  'SYS'
    and owner      !=  'SYSTEM'
    and a.snap_id   =  c.snap_id
    and c.snap_id   =  e.snap_id
    AND a.obj#      =  b.obj#
    AND a.dataobj#  =  b.dataobj#
    AND object_type = 'TABLE'
ORDER BY
    a.snap_id;

出力:

snap_id begin_interval_time       end_interval_time         schema table_name        logical_reads_per_table
------- ------------------------- ------------------------- ------ ----------------- -----------------------
8414    06/28/2012 7:00:11.006 AM 06/28/2012 8:00:16.540 AM WV90   WVT_WVPERFORATION 50288
8414    06/28/2012 7:00:11.006 AM 06/28/2012 8:00:16.540 AM WV90   WVT_WVPERFORATION 50288
8414    06/28/2012 7:00:11.006 AM 06/28/2012 8:00:16.540 AM WV90   WVT_WVPERFORATION 50288
8415    06/28/2012 8:00:16.540 AM 06/28/2012 9:00:21.516 AM EG     USER_GROUP_LIST   105328
8415    06/28/2012 8:00:16.540 AM 06/28/2012 9:00:21.516 AM EG     USER_GROUP_LIST   105328

各テーブルにヒットする一意のSQL_IDが原因で重複があると思います(それは表示されていません)。

本当に欲しい指定の出力を得るには、左結合(私は思う)とグループ化を行う必要があります。

このような出力にしたいと思います...

SNAP_ID | BEGIN_INTERVAL_TIME | END_INTERVAL_TIME ->>> OWNER | OBJECT_NAME | LOGICAL_READS_DELTA (logical reads in the time frame)

アイデア?

4

1 に答える 1

0

キーワードを使用してDISTINCT重複を削除してみてください。

SELECT DISTINCT 
      a.snap_id, 
      e.begin_interval_time, 
      e.end_interval_time, 
      owner as schema, 
      object_name AS table_name, 
      logical_reads_delta as logical_reads_per_table
FROM  dba_hist_seg_stat a, 
      dba_hist_seg_stat_obj b, 
      dba_hist_sqlstat c, 
      dba_hist_snapshot e
WHERE owner != 'SYS'
      and owner!= 'SYSTEM'
      and a.snap_id=c.snap_id
      and c.snap_id=e.snap_id
      AND a.obj# = b.obj#
      AND a.dataobj# = b.dataobj#
      AND object_type = 'TABLE'
ORDER BY a.snap_id;`
于 2012-07-05T23:25:47.950 に答える