View

如何從視圖與子查詢中獲得性能優勢?

  • October 15, 2013

我想知道/是否有人從使用視圖而不是子查詢中獲得了顯著的性能優勢。

我不想定義一個具體的案例,因為除了個案之外,我還試圖建立良好的實踐和經驗法則。

一個範例是在保險單索賠列表中查找最後一個索賠日期,您在其中開始按排序/過濾的客戶集進行搜尋,並且所有索賠都在他們自己的表中。我目前正在使用視圖並考慮子查詢。

可能影響跨案例性能的事情:

  • 可以以某種方式使用視圖來避免子查詢需要進行的全面掃描嗎?
  • 在加入視圖時確保使用最佳索引是否有任何限制/警告?

如果您必須在查詢中多次重複相同的子查詢,則可以使用視圖(或公用表表達式 =“內聯視圖”)而不是子查詢來獲得性能優勢。

如果相反,您可以用相同的視圖名稱(或命名的公共表表達式)替換每個子查詢,那麼優化器知道它是同一件事,並且可以記憶體結果或重組執行路徑,以便只需要查詢一次結果。

引用自:https://dba.stackexchange.com/questions/51264