使用DBMS_advisroe.tune_mivew 优化物化视图
使用的用户为sh,相关的表如下:
SQL> conn sh/sh
Connected.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
CHANNELS TABLE
CUSTOMERS TABLE
MV_CAPABILITIES_TABLE TABLE
PROD_MV TABLE
SALES TABLE
TIMES TABLE
1、查询物化视图的建表语句;
SQL> set long 1000
SQL> select query from user_mviews where mview_name='PROD_MV';
QUERY
--------------------------------------------------------------------------------
SELECT ch.channel_class, c.cust_city, t.calendar_quarter_desc,SUM(s.amount_sold)
sales_amount FROM sh.sales s, sh.times t, sh.customers c, sh.channels ch WHERE
s.time_id = t.time_id AND s.cust_id = c.cust_id AND s.channel_id = ch.channe
l_id GROUP BY ch.channel_class, c.cust_city, t.calendar_quarter_desc
2、使用advisor优化查询到的物化视图
SQL> var tn varchar2(20);
SQL> exec :tn:='tasksh';
PL/SQL procedure successfully completed.
SQL> print tn
TN
--------------------------------
tasksh
SQL> exec dbms_advisor.TUNE_MVIEW(:tn,'create materialized view prod_mv as SELECT ch.channel_class, c.cust_