我對Oracle 10數據庫中看到的某些東西感到困惑。將'distinct'關鍵字添加到oracle查詢中無故刪除查詢性能
我有以下查詢。
select
t2.duplicate_num
from table1 t1, table2 t2,
(
select joincriteria_0 from intable1 it1, intable2 it2
where it2.identifier in (4496486,5911382)
and it1.joincriteria_0 = it2.joincriteria_0
and it1.filter_0 = 1
) tt
where t1.joincriteria_0 = tt.joincriteria_0
and t2.joincriteria_1 = t1.joincriteria_1
and t2.filter_0 = 3
and t2.filter_1 = 1
and t2.filter_2 not in (48020)
它並沒有真正似乎什麼特別的東西給我,這裏是從自動跟蹤基準性能數字:
CR_GETS:318
CPU:3
行數:33173
現在,如果我將'DISTINCT'關鍵字添加到查詢中(例如'select distinct t2.duplicate_num ...'),會發生這種情況
個CR_GETS:152921
CPU:205
行數:305
查詢計劃並沒有改變,但是邏輯IO增長由我所期待的CPU只走了500。因素和邏輯IO大致不變。
最終結果是使用distinct關鍵字運行速度慢10-100倍的查詢。我可以將代碼放入應用程序中,這樣可以在一小部分時間內使結果集不同。這有什麼意義?特別是沒有查詢計劃改變?
好讀 - http://oracle-randolf.blogspot.com/2011/01/hash-aggregation.html –
你有什麼指標? –
有趣的鏈接rs - 我已閱讀它,它看起來肯定可以適用於我的查詢。我正在運行10.2.0.5,似乎有時會影響HASH(UNIQUE)調用。我嘗試添加一些提示,但他們沒有效果,但我當然不會將其視爲可能性。 –