我有一些我認爲是一個奇怪的問題。通常情況下,我認爲如果我放置一個限制(以便處理更少的行),Query應該會持續更少的時間。但我不知道爲什麼,事實並非如此。也許我錯了,但我沒有得到錯誤;該查詢似乎運行到'無限'。查詢時間比'沒有'更高
這是查詢
SELECT
A.ENTITYID AS ORG_ID,
A.ID_VALUE AS LEI,
A.MODIFIED_BY,
A.AUDITDATETIME AS LAST_DATE_MOD
FROM (
SELECT
CASE WHEN IFE.NEWVALUE IS NOT NULL
then EXTRACTVALUE(xmltype(IFE.NEWVALUE), '/DocumentElement/ORG_IDENTIFIERS/ID_TYPE')
ELSE NULL
end as ID_TYPE,
case when IFE.NEWVALUE is not null
then EXTRACTVALUE(xmltype(IFE.NEWVALUE), '/DocumentElement/ORG_IDENTIFIERS/ID_VALUE')
ELSE NULL
END AS ID_VALUE,
(select u.username from admin.users u where u.userid = ife.analystuserid) as Modified_by,
ife.*
FROM ife.audittrail ife
WHERE
--IFE.AUDITDATETIME >= '01-JUN-2016' AND
attributeid = 499
AND ROWNUM <= 10000
AND (CASE WHEN IFE.NEWVALUE IS NOT NULL then EXTRACTVALUE(xmltype(IFE.NEWVALUE), '/DocumentElement/ORG_IDENTIFIERS/ID_TYPE') ELSE NULL end) = '38') A
--WHERE A.AUDITDATETIME >= '01-JUN-2016';
所以我評論說這兩個子句嘗試(當然每一次每一個)。 而且他們兩個發生相同的;該查詢運行很長時間,我不得不放棄它。
你知道爲什麼會發生這種情況嗎?我怎麼可能用不同的方式來限制?
例如,AUDITDATETIME字段的值是'06 -MAY-2017'。以那種格式。
非常感謝你提前
有時更多的限制意味着更多的表掃描或更多的連接,這是非常耗時的。 – Lamar
必須有一個'索引'適用於你在更短的時間內獲得結果的列 –
更不用說EXTRACTVALUE關於性能的expriive。 – Lamar