我相信這是在Oracle上運行的SQL查詢:如何改進這個SQL查詢?
SELECT ID, DEVICE_TYPE, S3_KEY, TO_CHAR(CREATION_DATE, 'YYYY-MM-DD HH24:MI:SS') AS CREATION_DAT
FROM KASE_DDL.ARCHIVED_LOG
WHERE
CREATION_DATE >= TO_DATE('{DIST_YYYY/MM/DD HH24:MI:SS_UTC}', 'YYYY/MM/DD HH24:MI:SS')
AND CREATION_DATE <= TO_DATE('{DIET_YYYY/MM/DD HH24:MI:SS_UTC}', 'YYYY/MM/DD HH24:MI:SS')
它運行速度慢,我不知道如何可以把它改寫,以提高其效率。例如,如果在CREATION_DATE上建立了索引,此查詢是否可以使用索引?我記得讀過一些書,說如果圍繞某列進行計算,Oracle可能無法使用任何建立在其上的索引。我的查詢是否屬於這種情況?任何其他建議?謝謝。
更新:
在我的問題,CREATION_DATE有內置的索引我很好奇這個查詢是否能夠利用索引或不是數據庫。
你有'(CREATION_DATE)'索引嗎? –
查詢不是顯然的問題。嘗試在creation_date上添加索引。 –
這裏沒有函數應用於'where'中的'CREATION_DATE'列,該函數位於另一邊。如果適當的話,沒有理由不採取索引(你真的可以試一試)。 – Mat