1、use_concat網上說法:CONCATENATION和UNION/UNION ALL操作比較類似,根據OR查詢條件,將一個查詢分解為兩個或更多的部分,然後在去掉兩個部分重覆的記錄。由於CONCATENATION執行計劃需要去掉重覆的記錄,因此和UNION ALL不同。和UNION也不同的是,...
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