Oracle如何?利用實體化視圖提高查詢效能

來源:互聯網
上載者:User

實體化視圖不僅可以作為遠程複製查詢的功用,而且能夠提高複雜的統計查詢的效能.
1.建立查詢語句對應的實體化視圖. 
SQL> conn sh/sh;
SQL> create materialized view mv_sales
  2  refresh complete
  3  start with sysdate next sysdate+1
  4  as select PROD_ID,Count(PROD_ID) from sales group by PROD_ID;
    
2.該視圖是Enabled Query Rewrite,如果不是,
  運行下面的命令
  Alter Materialized View mv_sales enable query rewrite;
3.參數query_rewrite_enabled 值是true. 你可以在參數裡設定,或者會話級設定
  Alter session set query_rewrite_enabled = true;

4.第四個也是最容易被忽略的,那就是optimizer_mode,不能是rule或者choose(在Oracle9i裡這個值預設是choose)
  Alter session set  optimizer_mode = true;   

如果你還是發現你的查詢很慢,你可以進行以下診斷:
declare
 varQUERY VARCHAR2(200);
 varMV VARCHAR2(50);
 varSTATEMENT_ID VARCHAR2(10);
begin
 varQUERY:= 'select PROD_ID,Count(PROD_ID) from sales group by PROD_ID'; --查詢語句
 varMV:= 'MV_SALES';  --相應的實體化視圖名稱
 varSTATEMENT_ID:= 'hello'; --語句ID
 DBMS_MVIEW.EXPLAIN_REWRITE(QUERY=>varQUERY,MV=>varMV,STATEMENT_ID=>varSTATEMENT_ID);
end;

如果執行上面的命令報告以下錯誤:ORA-30380 REWRITE_TABLE does not exist.
則先 Create it using the ORACLE_HOME\rdbms\admin\utlxrw.sql script after connecting to the desired schema.
然後查詢 原因:select * from rewrite_table;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.