理論的には、なぜ内部結合は非常に速く、両方のクエリが同じ結果セットを返すという事実を考慮して外部結合を残したのはなぜですか?私は説明に長い時間がかかるクエリを持っていましたが、これはシングルジョイントの変更を見たものです:左外部結合 - 6秒、内部結合 - 0秒(残りのクエリは同じです)。結果セット:同じSQL Serverの速度:左外部結合対内部結合
答えて
が実際に外部結合左と内側、データに依存する可能性がより多くの結果を持って参加して、再度データに依存外側左同じresults..mostを返さないと参加..
なぜこれが答えでありコメントではないのか分かりません。右側の表に一致する行がない場合には、左結合によってさらに多くの結果が返される可能性がありますが、OPでは、そのケースでは2つの行が同じ行を生成することを明確に示しています。これは不正な形式のクエリ(たとえば、適切な場所にない結合/フィルタ条件)が原因である可能性がありますが、右側の表に一致するものがない左側の表に行がないことが考えられます。 –
私は、左の結合を内的な結合に変更しても結果は変わらないと心配しています。私はあなたがwhere句のテーブルの左側にある条件を有効に(おそらく間違って)インナー・ジョインに変えていると考えています。だから、最初私は私のクエリがそもそも間違っていました、そして、私は心配だろうと心配されるだろう
select *
from table1 t1
left join table2 t2
on t1.myid = t2.myid and t2.somefield = 'something'
と同じものではありません
select *
from table1 t1
left join table2 t2 on t1.myid = t2.myid
where t2.somefield = 'something'
:よう
何かパフォーマンス。内部結合はNOTです。左結合のパフォーマンスが向上していることは、2つの異なることを意味し、すべてのレコードに常に一致するテーブルがない限り、異なる結果を返さなければなりません。この場合、パフォーマンスを向上させるために間違っているため、内部結合に変更します。
左結合に時間がかかる理由は、where節によってフィルタリングされるより多くの行に結合しているということです。しかしそれはただの野生の推測です。あなたが実行計画を見る必要があることを知るために。
一般的に私は同意しますが、公平であるために、今日はデータが「INNER JOIN」に適合していても「LEFT OUTER JOIN」というクエリを作成しました。今日の結果は必ずしも結果が常に得られるものではない後で導入された(または過去に存在した)不一致の行が存在する可能性があります。だから、私は内側と外側の結合が今日同じ結果を生み出すのであれば、あまりにも大きな音を鳴らす傾向はありません。実行計画が異なるという事実は、結合キーワードだけでなく、2つのクエリの間に分散があると信じるようになります。 –
- 1. SQL Server 2008の内部結合と外部結合の混合
- 2. 6つのテーブルと内部結合と左外部結合の結合 - LINQ
- 3. SQL Serverの内部結合とMS Accessの内部結合
- 4. 左の外部結合のSQL where節
- 5. アクセスの左外部結合?
- 6. 内部結合と外部結合SQL文の比較
- 7. SQL Server:左側の外部結合+依存内部結合でクエリを作成する方法
- 8. 複数の左外部結合SQLクエリの高速化
- 9. 左外部結合サブクエリ
- 10. 左外部結合エンティティフレームワークコア1.1.0
- 11. NHibernate左外部結合サブクラス
- 12. 左外部結合フェッチは
- 13. SQL Serverクエリ内のエラー - 内部結合
- 14. SQL Serverの外部結合の問題
- 15. 内部結合と左結合のためSQLクエリが遅い?
- 16. 左外部結合は左結合と同じですか?
- 17. SQL Serverで左外部結合を使用できません。
- 18. 左外部結合を伴うSQL Server再帰クエリ
- 19. SQL Server - 更新時の内部結合
- 20. SQL内部対左側結合の質問
- 21. 内部結合対左側結合 - 同じ結果に対してより高速ですか?
- 22. グループバイナリで左外部結合、除外ヌル
- 23. 変換するSQL(内部結合、左外への参加)C#
- 24. oracle sqlの外部結合
- 25. SQLサーバーの外部結合?
- 26. ネストされた内部結合と外部結合のMSアクセス
- 27. 他の左外部結合内に左外部結合を配置することは可能です
- 28. SQL結合と左外部結合:なぜ結果は異なりますか?
- 29. 内部結合VS内部の内部結合の違い
- 30. SQL外部結合関数
実行計画を比較しましたか?あいまいな質問をすると、非常に具体的な結果が期待できないことを願っています。 –
予期した結果が得られたら、最初にすべきことは、統計情報(およびインデックス)が最新であることを確認することです。 –
@Aaron Bertrandはい、申し訳ありませんが詳細を与えることはできません。実行計画は異なって見えますが、私はそれらをうまく読みません。とにかく私はたぶん、これには一般的な理由があると思った... – ren