oracle避免使用耗费资源的操做

带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎数据库

执行耗费资源的排序(SORT)功能. DISTINCT须要一次排序操做, 而其余的至少须要执行两次排序.ide

例如,一个UNION查询,其中每一个查询都带有GROUP BY子句, GROUP BY会触发嵌入排序(NESTED SORT) ; 这样, 每一个查询须要执行一次排序, 而后在执行UNION时, 又一个惟一排序(SORT UNIQUE)操做被执行并且它只能在前面的嵌入排序结束后才能开始执行. 嵌入的排序的深度会大大影响查询的效率.排序

一般, 带有UNION, MINUS , INTERSECT的SQL语句均可以用其余方式重写.资源

 

     若是你的数据库的SORT_AREA_SIZE调配得好, 使用UNION , MINUS, INTERSECT也是能够考虑的, 毕竟它们的可读性很强it