vw_projectは20のCTEを必要とする図であり、それらを複数回参加し、56列SQL Serverクエリの動作
を返すこれらのCTEの多くは、自己結合(古典的な「グループごとの最後の行」、我々の場合は、私たちであります
関連するテーブルの大部分(多分40本)は1000行を超えず、ビュー自体は634行を返します。
このビューの非常に悪いパフォーマンスを改善しようとしています。 非正規化(TPTからTPHに移行)し、ほとんど影響を与えずに結合の数を半分に減らしました。
しかし、私は取得しています以下の結果を理解していません:sp_updatestats https://www.brentozar.com/pastetheplan/?id=H1Cuwsor-
後 https://www.brentozar.com/pastetheplan/?id=r1DqRciBW実行計画:
select * from vw_Project (TPT)
2 sec
select * from vw_Project (TPH)
2 sec
select Id from vw_Project (TPH , TPT is instant)
6 sec
select 1 from vw_Project (TPH , TPT is instant)
6 sec
select count(1) from vw_Project (TPH , TPT is instant)
6 sec
最後の1(6秒)の実行計画を
私にとって、それは不合理で、私は何が起こっているのか理解していないし、自分の最適化戦略が関連しているかどうかはわからない私が観察しているように見える奇妙な行動を正当化するもの...
手がかりはありますか?
私たちと共有できる実行計画はありますか? – WJS
誰もが見ることができるように、それらの選択肢の1つ(例えば6秒のもの)[ここ](https://www.brentozar.com/pastetheplan/)のプランを試して貼り付けることができます。 –
TPTとTPHとは何ですか? –