使用查询改写提高查询性能

使用查询改写提高查询性能

ID:6321808

大小:54.50 KB

页数:12页

时间:2018-01-10

使用查询改写提高查询性能_第1页
使用查询改写提高查询性能_第2页
使用查询改写提高查询性能_第3页
使用查询改写提高查询性能_第4页
使用查询改写提高查询性能_第5页
资源描述:

《使用查询改写提高查询性能》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用查询改写提高查询性能===========================================================作者:xsb(http://xsb.itpub.net)发表于:2006.03.2910:38分类:DW&BI出处:http://xsb.itpub.net/post/419/5088---------------------------------------------------------------(2004-11-15FirstPublish)http://www.oracle.com

2、/global/cn/oramag/oracle/03-sep/o53business.html注意:对于用于查询改写的物化视图,必须有ENABLEQUERYREWRITE子句。还有,初始化参数QUERY_REWRITE_ENABLED必须被设置为TRUE。物化视图MV综合技术应用无需改变SQL查询就可以大幅提高查询性能。  你是否为等待你的查询返回结果而感到疲惫?你是否已经为增强索引和调优SQL而感到疲惫,但仍然不能提高查询性能?那么,你是否已经考虑创建物化视图?有了物化视图,那些过去需要数小时运行的报告可以在几分钟内完成。物化视图可

3、以包括联接(join)和集合(aggregate),它提供了一种储存预计算结果的方法。  在执行一个查询时,优化器会判定访问物化视图或数据驻留的基础表是否更快一些。如果优化器判定查询物化视图是更好的解决方案,那么优化器会在一个被称为“查询改写”(queryrewrite)的过程中改写SQL查询。在这个过程中,不需要对任何SQL或应用程序代码进行修改,所以任何利用SQL访问数据库的应用程序或特定查询工具都可得益于使用物化视图。当为计算结果而需要访问的数据数量远大于结果(如集合)的大小时,最适合使用查询改写,但是它也可被用于加速昂贵的联接或

4、规划。  本文首先介绍了优化器可以执行的查询改写类型。然后,它讨论了帮助确定创建最佳物化视图集的工具,使优化器能够改写多个查询。利用这些工具创建的物化视图在其基础数据发生变化时还可以快速刷新。如果你不知道创建一个物化视图、一个索引或同时创建两者哪种更好,那么在Oracle数据库10g中引入的SQLAccessAdvisor可以通过分析给定的工作负荷帮助你做出决定。  查询改写类型  可能有许多类型的查询改写;当物化视图的定义查询与查询的文本完全匹配时,就发生最简单和最显著类型的查询改写。但是,当相同物化视图可用于相应多个查询时,就可以实

5、现查询改写的最大好处。现在,我们将举例说明一些Oracle优化器使用的规则,以确定它是否将使用物化视图来响应。  对于本文中的示例,可以考虑将一个星形模式中的PURCHASES表看作事实表(facttable),其范围由time_key划分。维度表(dimensiontable)--TIME、PRODUCT和CUSTOMERS--包含主键time_key、product_id和cust_id。在PURCHASES表中有引用各个维度表的外键约束。  考虑一下清单1中所创建的物化视图,该视图按月按product_id计算销售总额和销售总次数

6、。注意:对于用于查询改写的物化视图,必须有ENABLEQUERYREWRITE子句。还有,初始化参数QUERY_REWRITE_ENABLED必须被设置为TRUE。  代码清单1:创建月销售物化视图  CREATEMATERIALIZEDVIEWmonthly_sales_mv  ENABLEQUERYREWRITE  AS  SELECTt.month,p.product_id,SUM(ps.purchase_price)assum_of_sales,  COUNT(ps.purchase_price)astotal_sales  F

7、ROMtimet,productp,purchasesps  WHEREt.time_key=ps.time_keyAND  ps.product_id=p.product_id  GROUPBYt.month,p.product_id;  集合计算  在本文的示例中,我们将说明物化视图的查询并显示由EXPLAINPLAN得到的执行计划。清单2中的查询要求按月和按产品的平均采购价格。优化器可以使用物化视图monthly_sales_mv,利用SUM和COUNT集合计算平均采购价格。这个示例说明了一种叫做“集合计算”的技术。  代码清单2

8、:获得平均(AVG)采购价格  SELECTt.month,p.product_id,AVG(ps.purchase_price)asavg_sales  FROMtimet,productp,purcha

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。