COMPATIBLE
- 정의 : 오라클 버전 별 설정 값을 지정하며 이는 실제로 구문이나 기능의 제한
- mview와 COMPATIBLE 사이의 관계
- Error : REWRITE_TABLE is not compatible with Oracle version
- Error Code: ORA-30381
- Cause: One or more column definitions in the REWRITE_TABLE is either missing or incompatible with the current Oracle version.
- Solution: Connect to the appropriate schema, DROP TABLE REWRITE_TABLE and recreate it by invoking the admin/utlxrw.sql script prior to invoking the DBMS_MVIEW.EXPLAIN_REWRITE() API.
QUERY_REWRITE_ENABLED
- mview(Materialized View) 정의 : 쿼리와 그 결과 값이 물리적인 공간(새로운 테이블)에 저장되는 view
- 대상 : 대용량의 데이터에서 빈번하게 SUM, MIN, MAX, AVG, COUNT(*) 등의 AGGREGATE FUNCTION을 사용하는 쿼리와 그 결과
- 장점 : AGGREGATE FUNCTION 사용 시 COST가 높기 때문에, cost를 낮출 수 있는데, 이는 REPLICATE 가 가능하여 SNAPSHOT 처럼 사용이 가능함을 의미
- MVIEW는 쿼리를 실행 할 때마다 매번 join이나, Aggregation 연산(예: SUM, COUNT 등)을 수행하지 않고, 미리 계산된 값으로 쿼리를 수행하기 때문에 성능 향상을 가져올 수 있으며, optimizer는 MVIEW가 어느 때 사용되는 것이 적절한지를 판단할 수 있게 설계 됨
- Query Rewrite : 쿼리 재작성 또는 덮어쓰기. 이미 생성 된 뷰의 쿼리를 재작성
- 이 작업은 Optimizer에 의해 내부적으로 수행되므로 cost-based optimization 모드에서만 가능
- Materialized View를 만들기 위해선 해당 Table이 반드시 Analyze 되어 있어야 함.
- Query rewrite 환경이 적절히 셋업 되어 있다면, 대량 대이터에 대한 복잡한 쿼리 응답 속도를 획기적으로 개선할 수 있게 한다.
- QUERY_REWRITE_ENABLED
- 정의 : 9i 에서 function-based index나 mview에 대해서 Query의 Rewrite 가능하게 설정
- index column에 Function을 사용하는 function-based index를 사용 가능하게 함
- mview와 조건절이 같은 경우 master table을 scan하지 않고 mview를 읽도록 하는 내부적인 처리 가능
- 적용
- false : 비활성화 (9.2.0 이하 버전에서 기본 값)
- true : rewrite할 때와 하지 않을 때의 비용을 산정하여 최소비용이 드는 방법을 선택(10g 이상에서 기본 값). Rewrite가 수행되지 않을 수도 있음
- force : 비용에 대한 고려 없이 강제적으로 rewrite 실행
- 변경 방법
ALTER SYSTEM SET QUERY_REWRITE_ENABLED='TRUE';
- QUERY_REWRITE_INTEGRITY
- 정의 : Query Rewrite의 정확성을 제어하는 파라미터로 선택적으로 지정 가능
- 의미
- TRUSTED : optimizer에서 MVIEW의 데이터가 정확하다고 간주하고 질의 수행. Integrity 확인을 하지 않음. mv 동기화와 보존화와는 관계없이 query rewrite허용.
- ENFORCED: 기본값. mv동기화와 보존화를 보증할 때만 Query rewrite허용. 사용자가 integrity constraint를 확인하여야 한다. MVIEW는 fresh한 데이터를 포함하여야 한다.
- STALE_TOLERATED : Optimizer에서 데이터가 stale 상태이거나 fresh 상태인 경우 모두 MVIEW 사용
- 테스트 : http://ukja.tistory.com/264
문서에 대하여
- 최초작성자 : 박혜은
- 최초작성일 : 2009년 11월 19일
- 이 문서에 있는 테스트 결과는 DBMS버전과 구성된 환경에 따라 다를 수 있습니다.