我有以下查詢。它運行緩慢,但在hugeTable
上沒有PK時獲得一些價值。估計的執行計劃顯示成本的一半是「RID查找(堆)[hugetable] 51%」。創建PK和索引後的索引假脫機?
我在hugeTable
上添加了一個PK,並創建了一個索引來覆蓋pivot的子查詢的所有列。然後,80%的成本是封面索引中的「索引假脫機(快速假脫機)」。 (它確實索引掃描(4%))。
如何避免在巨大的表上的「指數軸」?
select ..., [...], [...], ...
from ....
T1 ...
outer apply (
select k1, k2, [...], [...], ...
from (
select k1, k2, col, value
from hugeTable
where k1 = T1.K1 and k2 = T1.K2
) p pivot (sum(value) for col in ([...], [...], ...)) as pvt
) a pvt