IN句に40個くらいの条件を入れたら、7秒ほどかかったので、
擬似テーブルを使ったらどうなるんだろうかと思い、実験してみた。
Oracle 11gで検証。
SQL内でしか使わない使い捨ての擬似テーブル
SELECT *
FROM table
WHERE id IN (00001, 00002, 00003)
こんな風に書いていたSQLを
下記のように書き換えて実行してみる。
SELECT table1.*
FROM table table1
,(
SELECT 00001 AS id FROM dual
UNION ALL
SELECT 00002 AS id FROM dual
UNION ALL
SELECT 00003 AS id FROM dual
) table2
WHERE table1.id = table2.id
実行時間は11秒。。。
遅すぎるので結局大人しくIN句を使った