2015-01-29 7 views
0

안녕하세요 저는 ASH 및 AWR 테이블을 배우고 있지만 SQL, 객체 및 스키마 소유자의 목록을 어떻게 얻을 수 있는지에 대한 아이디어는 지난 30 일 동안 사용자에게 제공됩니까? 기본적으로 모든 SQL 텍스트를 가져온 다음이 SQL 내에서 지정된 스키마 (사용자, 테이블, 패키지, 함수, 뷰 등)에 액세스 할 수 있는지 검색하십시오. 어디에서 어떻게 시작해야하는지에 대한 아이디어가 있습니까?DBA_HIST_ACTIVE_SESS_HISTORY 사용자 및 객체 스키마로 SQL을 얻으십시오

+0

왜이 정보를 원하십니까? AWR은 성능 튜닝에 유용하지만 샘플링을 통해 철저한 코드 분석을 위해 신뢰할 수 없습니다. –

+0

나는 지난 30-60 일 동안 누가 액세스하고 있으며 주어진 스키마의 어떤 객체에 대한 사용 분석을 할 필요가있다. 감사를 사용하여 옵션을 찾으려고합니다. – user2755905

답변

0

는 다음 뷰에 가입 할 수 -

  1. DBA_HIST_ACTIVE_SESS_HISTORY
  2. DBA_USERS
  3. DBA_HIST_SQLTEXT

는, 지난 30 일 동안의 역사를 필터링 DBA_HIST_ACTIVE_SESS_HISTORY보기 sample_time를 사용하십시오.

뭔가 같은 -

SELECT 
    h.sample_time, 
    u.username, 
    h.program, 
    h.module, 
    s.sql_text 
FROM 
    DBA_HIST_ACTIVE_SESS_HISTORY h, 
    DBA_USERS u, 
    DBA_HIST_SQLTEXT s 
WHERE sample_time >= SYSDATE - 30 
    AND h.user_id=u.user_id 
    AND h.sql_id = s.sql_iD 
ORDER BY h.sample_time 
/
+0

이것은 지난 30 일 동안 모든 SQL을 분석하고 주어진 스키마에서 사용 된 모든 객체의 사용을보고하는 질문에 대한 답변이 아닙니까? 가능한 경우 사용자 을 포함하십시오. SQL은 schema.table 또는 동의어, packages/function/procs, pl/sql 코드, 트리거 등을 사용할 수 있습니다. – user2755905

+0

Ok. 작은 예제로 자세히 설명해 주시겠습니까? –