今回は SQL クエリのパフォーマンス改善のコツです。
クエリの中で、固定値のテーブルを使いたい場合があります。そのときに以下のクエリを使います。
SELECT 1, 'A'
UNION
SELECT 2, 'B'
SELECT 1, 'A'
UNION ALL
SELECT 2, 'B'
上と下のクエリは同じ結果を返しますが、「UNION ALL」とするだけで内部処理が変わります。以下は Ctrl+L で推定実行プランを表示した結果です。
ふたつのテーブルでレコードが重複しないことが分かっている場合は「UNION ALL」にすれば、パフォーマンスを大きく改善させることができます。今回の1レコードだけの例でも56:44の差が出ます。100レコード規模になるとさらに差が大きくなります。