当前位置: 代码迷 >> Oracle开发 >> 关于user_merge揭示
  详细解决方案

关于user_merge揭示

热度:91   发布时间:2016-04-24 07:20:15.0
关于user_merge提示
存储过程代码中有类似如下的用法:
  user_merge(E);
  user_merge(a,b),
  请问user_merge提示怎么用?其中E,a,b分别代表什么,谢谢!

------解决方案--------------------
楼主写错了吧?
应该是use_merge(..)吧!
这个是oracle hint的一种用法,hint是用于优化sql的。
use_merge(table)的意思是:
将指定的表与其他行源通过合并排序连接方式连接起来,
比如,楼主的use_merge(a,b),应该是将a,b两个表通过条件,排序后合拼成一个临时表,
使用这种方式的原因是为了防止在数据量过大时,由于子查询导致速度太慢,性能低下!

------解决方案--------------------
use_merge是告诉oracle优化器使用“排序-合并”连接来连接每个表的行。
示例:
SQL code
SELECT /*+ USE_MERGE(employees departments) */ *   FROM employees, departments   WHERE employees.department_id = departments.department_id;
  相关解决方案