2012-07-05 3 views
0

아래의 쿼리는 데이터베이스의 모든 테이블에 대해 시간별로 "논리적 읽기"를 출력합니다. 각 snap_id는 1 시간 단위로 표시됩니다.4 테이블 오라클과 왼쪽 조인

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_IDs의 중복이 있다고 생각.

필자가 원하는 출력을 얻기 위해 왼쪽 결합 (필자 생각)과 그룹화가 필요하다.

나는 ...

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

아이디어 같은 것을 될 수있는 출력을 원하십니까?

+0

쿼리를 정상화하십시오 ... – Sebas

답변

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;`