重複の可能性:
SQL JOINとINのパフォーマンス?
SQL Server 2008に支えられています。ユーザーが検索するアイテムのリストを選択し、それらのアイテムに基づいてすべてのアイテムを取得できるアプリケーションがあります。私たちが使用した2つの手法は次のとおりです。
SELECT * FROM mytable WHERE myval IN ('A', 'B', 'C')
と
INSERT INTO tempTable (tempvalue) ('A'), ('B'), ('C')
SELECT * FROM mytable m INNER JOIN tempTable t WHERE m.myval = t.tempvalue
最初のオプションは確かに簡単ですが、ユーザーが50を超える値を選択すると、パフォーマンスはひどいものになります。パフォーマンスが急速に低下するため、INを廃棄することについて話しているところまでです。
では、なぜINはそれをうまく実行しないのでしょうか。これは典型的なものですか、それとも私たちのセットアップに固有のものですか?