博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过dbms_mviewdbms_mview.explain_rewrite检测为什么不使用查询重写的问题
阅读量:2438 次
发布时间:2019-05-10

本文共 2776 字,大约阅读时间需要 9 分钟。

先创建一个物化视图使用最简单的语法来创建

create materialized view  sales_customers_products asSELECT p.prod_category, c.country_id,sum(s.quantity_sold) AS quantity_sold,sum(s.amount_sold) AS amount_soldFROM sh.sales s, sh.customers c, sh.products pWHERE s.cust_id = c.cust_idAND s.prod_id = p.prod_idand c.country_id='Ruddy'GROUP BY p.prod_category, c.country_idORDER BY p.prod_category, c.country_id;/

创建rewrite_table表
SQL> @d:/oracle/product/10.2.0/db_1/rdbms/admin/utlxrw.sql

Table created

检查查询重写的参数设置
SQL> show parameter query

NAME TYPE VALUE
------------------------------------ ----------- -----------------
query_rewrite_enabled string TRUE
query_rewrite_integrity string enforced

SQL> DECLARE  2   l_query CLOB := 'SELECT p.prod_category, c.country_id,  3  sum(s.quantity_sold) AS quantity_sold,  4  sum(s.amount_sold) AS amount_sold  5  FROM sh.sales s, sh.customers c, sh.products p  6  WHERE s.cust_id = c.cust_id  7  AND s.prod_id = p.prod_id  8  GROUP BY p.prod_category, c.country_id  9  ORDER BY p.prod_category, c.country_id'; 10   BEGIN 11   dbms_mview.explain_rewrite( 12   query => l_query, 13   mv => 'sales_customers_products', 14   statement_id => '42' 15   ); 16  END; 17  /PL/SQL procedure successfully completed;SQL> select message from rewrite_table;MESSAGE-------------------------------------------------------------------QSM-01150: 未重写查询QSM-01052: 表的引用完整性约束条件 PRODUCTS 在 ENFORCED 完整性模式中无效QSM-01026: 对 SALES_CUSTOMERS_PRODUCTS 禁用查询重写/
SQL>drop materialized view  sales_customers_products ;下面在创建物化视图时启用查询重写
create materialized view  sales_customers_productsENABLE QUERY REWRITEasSELECT p.prod_category, c.country_id,sum(s.quantity_sold) AS quantity_sold,sum(s.amount_sold) AS amount_soldFROM sh.sales s, sh.customers c, sh.products pWHERE s.cust_id = c.cust_idAND s.prod_id = p.prod_idGROUP BY p.prod_category, c.country_idORDER BY p.prod_category, c.country_id;SQL> DECLARE  2   l_query CLOB := 'SELECT p.prod_category, c.country_id,  3  sum(s.quantity_sold) AS quantity_sold,  4  sum(s.amount_sold) AS amount_sold  5  FROM sh.sales s, sh.customers c, sh.products p  6  WHERE s.cust_id = c.cust_id  7  AND s.prod_id = p.prod_id  8  GROUP BY p.prod_category, c.country_id  9  ORDER BY p.prod_category, c.country_id'; 10   BEGIN 11   dbms_mview.explain_rewrite( 12   query => l_query, 13   mv => 'sales_customers_products', 14   statement_id => '43' 15   ); 16  END; 17  /PL/SQL procedure successfully completedSQL>select message from rewrite_table where statement_id='43';MESSAGE-------------------------------------------------------------------QSM-01151: 已重写查询QSM-01209: 已通过实体化视图 SALES_CUSTOMERS_PRODUCTS, 采用文本匹配算法进行了查询重写/
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-765390/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26015009/viewspace-765390/

你可能感兴趣的文章
解决接通电源后自动开机问题(转)
查看>>
实例编程:用VC写个文件捆绑工具(转)
查看>>
教你如何用手工迅速剿灭QQ广告弹出木马(转)
查看>>
Windows系统维护完全图形化攻略(转)
查看>>
WAP2.0移动互联(转)
查看>>
WAP手机防毒攻略(转)
查看>>
如何建立C++ BuilderX 1.5 Mobile Edition开发环境(转)
查看>>
蓝牙套接字概述(转)
查看>>
TCPDUMP简介(转)
查看>>
Symbian智能手机特殊号码搜集(转)
查看>>
Linux操作系统下媒体播放器的初步探讨(转)
查看>>
网站内页权重如何提高-SEO优化技术群课堂笔记(转)
查看>>
用MSDOS.SYS同装两个WIN98(转)
查看>>
用DHTML来模拟实现下拉菜单(转)
查看>>
oracle数据库应用中实现汉字“同音”查询(转)
查看>>
关于无盘网络正确网络配置建议,减少卡机蓝屏关键(转)
查看>>
交换机及路由器如何才能更加安全?(转)
查看>>
chinaunix
查看>>
bxp读写分离怎么设置(转)
查看>>
复制表结构的通用存储过程(转)
查看>>