使用ordered提示
Oracle必须花费大量的时间来剖析多表格的合并,用以确定表格合并的最佳顺序。如果Oracle SQL表达式涉及七个乃至更多的表格合并,那么有时就会需要超过30分钟的时间来剖析,因为Oracle必须评估表格合并所有可能的顺序。八个表格就会有40,000多种顺序。Ordered这个提示(hint)和其他的提示一起使用能够产生合适的合并顺序。
Ordered这个提示会要求列在SQL表达式FROM字句里的表格按照指定的顺序进行合并,FROM字句里的第一个表格会指定驱动表格(driving table)。驱动表格应该是返回最小行数的表格。使用ordered提示会跳过非常耗时和耗资源的剖析操作,并加快Oracle SQL的执行。
Listing A如下:
以下是引用片段:
- Listing A
- select /*+ ordered use_nl(bonus)
- parallel(e, 4) */ e.ename, hiredate, b.comm from emp e, bonus b
- where e.ename = b.ename ;
Listing A里是一个复杂查询的例子,这个查询被强制进行一个嵌套循环,从而与对emp表格进行的并行查询合并。要注意,我已经使用ordered提示来引导Oracle去按照WHERE子句所列出的顺序来评估表格。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16566331/viewspace-678461/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16566331/viewspace-678461/