1、use_concat
網上說法:
CONCATENATION和UNION/UNION ALL操作比較類似,根據OR查詢條件,將一個查詢分解為兩個或更多的部分,然後在去掉兩個部分重復的記錄。由於CONCATENATION執行計劃需要去掉重復的記錄,因此和UNION ALL不同。和UNION也不同的是,這個執行計劃並不會去掉所有的重復記錄,而只是CONCATENATION包含兩個子查詢之間重復的記錄被過濾掉。在10g中,這個執行計劃和提示已經是為了後向兼容而保留了,可以看到,默認情況下,就是使用CONCATENATION執行計劃的COST更低,Oracle也不會選擇這種執行計劃;
對於or子查詢句式,如果使用use_concat無效,可以嘗試使用/* +use_concat(or_predicates(1))*/
與use_concat相反的是no_expand