Oracle SQL的优化(3)

2/9/2008来源:Oracle教程人气:4532


使用Index提示:
1、Index提示是最常用的与索引有关的提示,使用Index提示时,虽然可以列出特定的索引,但不一定要提
及索引名。
例如:
    select /*+index(bookshelf)*/ title from bookshelf where categoryname='HARRISON'
因为在title上有索引,此查询将使用索引而无需提示,但是,假如索引是非选择性的或者表比较小且使用了
CBO则优化器可能会忽略索引,使用Table access Full。假如你知道索引对于给定的值来说是选择性的,则
可以使用index提示强制使用一个基于索引的数据访问路径,而不是全表扫描! 注重:假如不在index提示中列出特定的索引,且表中有多个可供使用的索引,则优化器将会评估可用的索引
      并选择其扫描成本最低的索引。优化器还可以选择扫描几个索引并利用And-Equal操作来合并他们。
索引的其它优化问题:
(1)、一般来说,优化程序扫描单一的复合索引的速度要比扫描多个独立的单个索引的速度要快,扫描所返回的
   行数越多越能体现复合索引的性能。
(2)、可以使用index提示强迫优化器使用跳跃扫描功能。