私はゆっくり実行しているクエリをデバッグしようとしています。いくつかのwith
の式がleft joined
です。ジョインを削除すると、かなり速くなります。SQL ServerはCTE式を使用しないと実行しますか?
オリジナルクエリ:
;with CTE as
(
Select *
from table1
)
SELECT *
FROM table2
LEFT JOIN CTE ON table2.CTEID
より高性能のクエリ:それは参加していないので、上記で
;with CTE as
(
Select *
from table1
)
SELECT *
FROM table2
が、それはCTEを実行していない、またはそれは関係なく、それを実行しますか?
実際のクエリはどうですか?単語パズルだけでは、私たちは大いに役に立たない。そして "with"は、共通テーブル式を定義する方法です。変数ではありません。 –
私はそれが私が混乱しているところだと思います。と一緒に使うと、式のトップダウン内で実際にクエリが実行されるのですか、呼び出されたときに実行されますか? –
インラインビューです。呼び出されません。これはクエリの一部です。 –