2009-11-25 3 views
1

오라클 9i 데이터베이스에는 오랜 시간 전에 생성 된 구체화 된 뷰가 더 이상 작업하지 않습니다. 오라클이 이러한보기를 사용하여 쿼리를 제공하는지 여부를 결정하는 쉬운 방법이 있습니까? 그들이 더 이상 사용되지 않으면 우리는 그들을 제거하고 싶습니다. 그러나 우리는 그러한 견해가 무작위적인 보고서가 몇 시간 이내에 실행되는 것을 허용한다는 사실을 발견하기를 원하지 않습니다. 더욱 멋진 실제 SQL 쿼리 구체화 된 뷰를 사용하고 있었는지 말해 줄 수있는 것이 무엇인가 Oracle에서 Materialized View를 사용하고 있는지 어떻게 알 수 있습니까?

SELECT last_used_date FROM dba_magic 
WHERE materialized_view_name = 'peters_mview' 

처럼 내가 꿈을 꾸고있어 대답은 될 것이다. 내가 덜 정착해야 할 수도 있다는 것을 알았다.

10g이 필요한 솔루션이있는 경우 곧 업그레이드되므로 해당 답변도 유용합니다.

답변

6

오라클 감사를 통해 문서별로 구성되면이를 알 수 있습니다. 구성된 후에는 "AUDIT SELECT ON {materialized view 이름}"으로 사용 가능하게하십시오. 감사 추적은 SYS 스키마의 AUD $ 테이블에 있습니다.

0

감사 이외의 다른 방법은 한 번 새로 고친 후 다음 새로 고치기 전에 v $ segment_statistics보기를 읽은 다음 읽은 것이 있는지 확인하는 것입니다. 자동 통계 수집 작업도 고려해야합니다.

0

V $ SQLAREA 테이블에는 데이터베이스에서 실행 한 쿼리를 식별하는 데 도움이되는 두 개의 열이 있습니다.

SQL_TEXT - VARCHAR2 (1000) - CLOB - - 우리는 쿼리를 찾으려면이 열을 사용할 수 있습니다

현재 커서의 SQL 텍스트의 모든 문자 현재 커서 SQL_FULLTEXT에 대한 SQL 텍스트의 첫 번째 천 자 구체화 된 뷰를 사용하십시오.

+0

이 테이블을 사용하여 어떤 SQL이 실행 중인지 알아 보았습니다. 그러나이 테이블은 사용 된 내부 오브젝트 (인덱스, 구체화 된 뷰 등)를 구체적으로 알려줍니까? 구체화 된 뷰는 사용자가 실행 한 원래 SQL에서 언급되지 않은 경우에도 사용할 수 있습니다. –

+0

Peter : V $ SQLAREA 관련 테이블에서 계획을 가져올 수 있습니다. –