SQLServer: On句条件とインラインビューの実行計画


http://d.hatena.ne.jp/jflute/20071018 の続編

【On句条件】
select BOOK.BOOK_ID, BOOK.BOOK_NAME, AUTHOR.AUTHOR_NAME
from BOOK
left outer join AUTHOR
on BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID
and AUTHOR.AUTHOR_ID > 3

【インラインビュー】
select BOOK.BOOK_ID, BOOK.BOOK_NAME, AUTHOR.AUTHOR_NAME
from BOOK
left outer join (select * from AUTHOR where AUTHOR_ID > 3) AUTHOR
on BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID

いずれも、BOOKに対して「ClusteredIndexScan」、
AUTHORに対して「ClusteredIndexSeek」、
そして、NestedLoopsであることには変わりは無いが、
インラインビューの場合だけ「ComputeScalar」が
「NestedLoops」前にAUTHORに対して発生。
うむむぅぅぅ。

コストは0%なのだが、件数が大したこと無いだけなのかな!?
じゃあ、件数をたくさん入れないとってその環境を作るのが大変...


それにしても実行計画もDBによって色々表現が違うので、勉強が大変だぁ。