我有一個SQL查詢看起來非常簡單。然而,它在生產中表現不佳。任何改善性能的建議將不勝感激。請求優化SQL查詢的提示
SELECT DISTINCT CUSTOMERS.CUST_ID,
CUSTOMERS.FNAME,
CUSTOMERS.LNAME,
CUSTOMERS.CURR_STAT,
CUSTOMERS.CREATE_TIME,
CUSTOMERS.ROUTE_NBR,
FROM CUSTOMERS
INNER JOIN
INVS
ON
CUSTOMERS.CUST_ID = INVS.CUST_ID
WHERE
CUSTOMERS.ROUTE_NBR = 'A10' AND
(
CUSTOMERS.LAST_UPD_DT >= ? OR
CUSTOMERS.CURR_STAT IN ('PRE' , 'POST' , 'REV')
) AND
CUSTOMERS.CURR_STAT NOT IN ('START' , 'END' , 'REJ') AND
(
INVS.INV_CODE = 'AVL' OR
INVS.INV_CODE = 'ONORD'
)
有以下列Customers表上的索引:
- ROUTE_NBR
- CUST_ID
- CREATE_TIME
- CURR_STAT
難道做一個顯著如果指數包括LAS,則差異T_UPD_DT列而不是CREATE_TIME列來反映謂詞?任何其他可以改進的地方?謝謝。
是所有四個列或每個索引的索引? –
什麼數據庫?表格中的行數是多少? – ULick
還有沒有其他'CURR_STAT'不在你在查詢中使用的那些6上? –