Oracle Inとexists not inとnot existsの比較分析

436 ワード

この2つのとても普遍的なネット友達が関心を持っている問題をまとめて答えてください。inとexistの違いはsqlプログラミングの角度から言えば、inは直観的で、existsはもう一つのselectを直感的に見なくて、inは各フィードクエリに使えますが、existsは関連するサブクエリにしか使えないようです。性能上から見れば、existsはloop方式で循環の回数が大きくて、外観は記録数が少なくて、内表は構いません。全体の検索の範囲はとても小さいです。もし内部表が大きいなら、外観もとても遅くなります。この時に限ってexistsは本当に速いです。not inとnot existsの違いnot in内外表は全部表スキャンして、索引を使っていません。not extstsのサブクエリは表の索引を使用できます。not_existsをnot inの代わりに使うことを推奨しますが、existsとinであれば、状況を具体的に見る時間があります。具体的な例と実行計画で説明します。