以下の2つのクエリの間に、パフォーマンスと出力の点で基本的な違いはありますか?
select * from table1
left outer join table2 on table1.col=table2.col
and table2.col1='shhjs'
そして
select * into #temp from table2 where table2.col1='shhjs'
select * from table1 left outer join #temp on table1.col=#temp.col
ここで、table2には膨大な数のレコードがありますが、#tempには少ないレコードがあります。
はいあります。2番目の方法は、一時データベースでテーブルを実体化することです。これには、追加のオーバーヘッドが必要です。
最初の方法は、そのようなオーバーヘッドを必要としません。そして、それはより良く最適化することができます。たとえば、にインデックスが存在するtable2(col, col1)
場合、最初のバージョンはそれを利用する可能性があります。2番目はしません。
ただし、データを使用してシステムで2つのクエリをいつでも試して、一方が他方よりも著しく優れているかどうかを判断できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加