大佬教程收集整理的这篇文章主要介绍了sql – 在与WHERE子句一起使用时优化Oracle CONNECT BY,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,以下查询可能会执行全表扫描(忽略dept_id的选择性):
SELECT * FROM employees WHERE dept_id = 'SALE' START WITH manager_id is null CONNECT BY PRIOR employee_id = manager_id
我试图以两种方式提高性能:
查询A:
SELECT * FROM employees START WITH manager_id is null AND dept_id = 'SALE' CONNECT BY PRIOR employee_id = manager_id
查询B:
SELECT * FROM ( SELECT * FROM employees WHERE dept_id = 'SALE' ) START WITH manager_id is null CONNECT BY PRIOR employee_id = manager_id
虽然这两个查询都比原来好得多,但在Oracle 10g第2版上,查询B的执行效果要好于A.
您是否有类似的性能优化来处理CONNECT BY和WHERE子句?你如何解释查询B比查询A好多了?
以上是大佬教程为你收集整理的sql – 在与WHERE子句一起使用时优化Oracle CONNECT BY全部内容,希望文章能够帮你解决sql – 在与WHERE子句一起使用时优化Oracle CONNECT BY所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。