USE_CONCAT提示强迫优化器扩展查询中的每一个OR谓词为独立的查询块. 当使用多个in-lists查询时,Oracle可能选择把单个查询扩展为多个查询块。 使用USE_CONCAT提示示例: 1.使用scott用户及标准表进行测试
2.添加提示
3.Oracle对于执行计划的改写 对于inlist查询,Oracle通常会进行改写,将形如 select ..... from ....... where ....in (..........) 的sql语句,改写为union all的形式来执行,这个改写通常是潜在的。 然而这一改写可能存在问题,如果inlist中的值比较多的话,CBO花在分析执行路径上的时间和成本都会相当大,此时我们通常需要阻止Oracle的这一展开操作. 那么实际上,在这里,USE_CONCAT和NO_EXPAND成了互为"反函数"。在使用了NO_EXPAND提示后,从Oracle8之后,Oracle会使用"inlist iterator"
本文作者: 原文出处: http://www.eygle.com/sql/How.to.Use.USE_CONCAT.hints.in.Oracle.htm
|
如何使用USE_CONCAT提示
最新推荐文章于 2021-12-04 11:06:55 发布