我有兩個查詢,其中一個涉及查詢中的分區表,而另一個查詢是相同的,只是它涉及非分區等效表。原始(非分區表)查詢的性能優於分區對應部分。我不確定如何爲此隔離問題。查看執行計劃,我發現所使用的索引與兩個查詢相同,並且新查詢在其執行計劃中顯示PARTITION RANGE子句,表示正在進行分區修剪。該查詢是以下形式的: -性能調優 - 在分區表與非分區表上的查詢
Select rownum, <some columns>
from partTabA
inner join tabB on condition1
inner join tabC on condition2
where partTabA.column1=<value> and <other conditions>
and partTabA.column2 in (select columns from tabD where conditions)
其中partTabA是分區表和partTabA.column1是分區鍵(範圍分區)。在原始查詢中,這被替換爲同一個表的非分區等價物。我應該查看哪些參數以查明新查詢執行得不好的原因。我擁有的工具是Oracle SQL Developer。
我注意到的一個區別是非分區表訪問是通過PK上的非唯一索引進行的,在分區表上,通過PK上的唯一索引(本地索引)進行訪問。 – Ajay