DBMS 1

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

DBMS_MVIEW

DBMS 1
Tibero 가이드
Tibero System Package Guide
DBMS_MVIEW
작성자
dataonair
작성일
2021-02-18 10:33
조회
1152



제10장DBMS_MVIEW




내용 목차






10.1. 개요

10.2. 프로시저

10.2.1. EXPLAIN_REWRITE

10.2.2. REFRESH





10.1. 개요




DBMS_MVIEW는 실체화 뷰와 관련된 정보를 제공하고 이 정보를 최근의 것으로 변경할 수 있는 REFRESH 기능을 사용하기 위한 프로시저를 제공하는 패키지이다.




10.2. 프로시저




본 절에서는 DBMS_MVIEW 패키지에서 제공하는 프로시저를 알파벳 순으로 설명한다.




10.2.1. EXPLAIN_REWRITE




SQL의질의 다시 쓰기(Query Rewrite) 정보를 설명하는 프로시저이다. 이 프로시저는 왜 SQL 질의가 재작성에 실패했는지 혹은 어떤 실체화 뷰를 사용해서 재작성 되었는지, 재작성된 SQL 질의는 무엇인지를 설명해준다.이러한 정보를 밑바탕으로 사용자는 SQL 질의가 재작성될 수 있도록 처리할 수 있다. query 파라미터로 전달받은 SQL 질의문은 실제로 수행되지 않으며, 결과는 현재 스키마의 REWRITE_TABLE 테이블에 저장된다. 단, 이 프로시저를 호출하기 전에 $TB_HOME/scripts/rewrite_table.sql 스크립트를 실행하여 REWRITE_TABLE 테이블을 미리 생성해야 한다.EXPLAIN_REWRITE 프로시저의 세부 내용은 다>

  • 프로토타입
    DBMS_MVIEW.EXPLAIN_REWRITE
    (
    query IN VARCHAR2,
    statement_id IN VARCHAR2
    );
  • 파라미터

    파라미터 설명
    query SQL 질의문이다.
    statement_id SQL 질의문의 결과를 구별하기 위해 사용자가 정한 고유 식별자이다.이 식별자는 REWRITE_TABLE 테이블의 STATEMENT_ID 컬럼에 저장된다.
  • 예제
    SQL> create table base as (select mod(level, 100) a, level*10 b from dual 
    connect by level<=100);
    SQL> create materialized view mv enable query rewrite as
    select sum(a+b) s, count(b+a) c from base;
    SQL> @rewrite_table.sql
    SQL> exec dbms_mview.explain_rewrite('select avg(a+b) from base')
    SQL> select MV_OWNER, MV_NAME, QUERY, REWRITTEN_TXT, MESSAGE
    from rewrite_table;

    MV_OWNER MV_NAME QUERY REWRITTEN_TXT MESSAGE
    -------- ------- --------------- ------------------------ ------------------------
    SYS MV SELECT AVG(A+B) SELECT ("MV"."S" 010: query was rewritten
    FROM BASE / "MV"."C") "AVG(A+B)" with materialized view
    FROM "SYS"."MV"

    select avg(a+b) SELECT ("MV"."S" 000: whole query was
    from base / "MV"."C") "AVG(A+B)" written
    FROM "SYS"."MV"





10.2.2. REFRESH




실체화 뷰를 Refresh하는 프로시저이다.REFRESH 프로시저의 세부 내용은 다음과 같다.

  • 프로토타입
    DBMS_MVIEW.REFRESH
    (
    mview IN VARCHAR2,
    refresh_method IN VARCHAR2
    );
  • 파라미터

    파라미터 설명
    mview Refresh할 실체화 뷰이다.
    refresh_method Refresh에 사용될 방법이다.

    • C 또는 c: 완전 Refresh를 사용한다.
    • F 또는 f: 빠른 Refresh를 사용한다.
    • : 빠른 Refresh가 가능한 경우 빠른 Refresh를 사용하고, 그렇지 않으면 완전 Refresh를 사용한다. (기본값)
  • 예제
    call dbms_mview.refresh('myuser.mv_t','f');
    call dbms_mview.refresh('mv_t','c');