Oracle SQL 性能优化技巧
选用适合的 优化器
的优化器共有 种
、基于规则、基于成本、选择性
设置缺省的优化器,可以通过对 文件中 参数
的各种声明,如 ,,, ,! 。
你当然也在 " 句级或是会话#$##级对其进行覆盖。
为了使用基于成本的优化器%, #&%#$'()*$, 你必须经常
运行 +,*$命令,以增加数据库中的对象统计信息-$###的准
确性。
如果数据库的优化器模式设置为选择性,那么实际的优化器模
式将和是否运行过 +,*$ 命令有关。 如果 +$ 已经被 +,*$ 过, 优化
器模式将自动成为 %, 反之,数据库将采用 形式的优化器。
在缺省情况下, 采用 优化器, 为了避免那些不必要的全表
扫描./+++$#, 你必须尽量避免使用 优化器,而直接采用
基于规则或者基于成本的优化器。
0访问 +$ 的方式
采用两种访问表中记录的方式:
、 全表扫描
全表扫描就是顺序地访问表中每条记录。 采用一次读入多个数
据块'#$+1的方式优化全表扫描。
%、 通过 访问表
你可 以 采 用 基于 的访 问 方式 情 况 , 提高 访 问 表 的效 率,
包含了表中记录的物理位置信息。 采用索引23实现了
数据和存放数据的物理位置 之间的联系。通常索引提供了快速访问
的方法,因此那些基于索引列的查询就可以得到性能上的提高。
共享 " 语句
为了不重复解析相同的 " 语句,在第一次解析之后, 将 " 语
句存放在内存中。这块位于系统全局区域 4#,#$)5++$的共享
池#6$'/7$(+中的内存可以被所有的数据库用户共享。 因此,当你
执行一个 " 语句有时被称为一个游标时,如果它和之前的执行过的语句完
全相同, 就能很快获得已经被解析的语句以及最好的执行路径 。
的这个功能大大地提高了 " 的执行性能并节省了内存的使用。
评论0
最新资源