帶有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