数据库高级优化技术:物化视图和查询重写

需积分: 45 0 下载量 65 浏览量 更新于2024-08-23 收藏 2.3MB PPT 举报
"高级优化技术:数据库高级优化技术" 在数据库优化中,高级优化技术是提高数据库性能的重要手段。本文将从物化视图、分区标记、查询重写等方面对高级优化技术进行详细介绍。 1. 物化视图 物化视图是一种虚拟表,每次访问它都会导致这个查询语句被执行一次。为了避免每次访问都执行这个查询,可以将这个查询的结果集存储到一个物化视图中。物化视图只是对已经存储于别处的数据的转换和复制。物化视图也可以被使用在分布式环境中,用来做数据库间的数据复制。 在创建物化视图时,必须指定一个名字和一个查询。物化视图使用的表被称为基础表(basictable或者主表master table)。注意,在创建包含orderby子句的物化视图时,返回记录只是在物化视图创建时才根据orderby子句进行排序,后续的刷新操作不会再进行排序。 数据库引擎将创建一个物化视图(数据字典中的一个对象)和一个容器表(containertable)。容器表是一个普通表,他拥有和物化视图相同的名字,用来存储这个查询语句返回的值。容器表可以象其他任何表一样被查询。 2. 分区标记 分区标记是一个由包dbms_mview里的函数pmarker生成的一个分区标识符。函数pmarker需要将rowid作为参数传入来创建分区标记。如何创建了一个包含分区标记的物化视图?针对每条记录进行调用,不要低估这个时间花费,会造成大约2倍的时间差距(带有分区标记和不带有分区标记)。 3. 查询重写 查询重写是数据库优化的一种技术。查询优化器可以自动选择使用物化视图来对查询进行重写,只要这个物化视图包含执行这条查询需要的全部或者部分数据。是否使用物化视图是基于查询优化器对执行计划的开销的计算。为了利用查询重写,必须在两个层次上被启用:动态参数query_rewrite_enabled被设置为true,对物化视图启用查询重写。通过执行计划,发现启用了查询重写,并且使用了物化视图。 在高级优化技术中,物化视图、分区标记、查询重写等技术都是提高数据库性能的重要手段。在使用这些技术之前,必须先对数据访问与表连接进行优化,只有在无法通过其他途径提升性能的时候,才建议使用这里介绍的高级优化技术。