存储过程代码中有类似如下的用法:
   user_merge(E);
   user_merge(a,b),
  请问user_merge提示怎么用?其中E,a,b分别代表什么,谢谢!

解决方案 »

  1.   

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

  2.   

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

  3.   

    那若是一个表呢,含义是什么?
    比如use_merge(E);
    :)