どの Union ALL アプローチを使用する必要がありますか?
質問
特定の基準のみで在庫調整を検索するには、15 の監査証跡テーブルを組み合わせる必要があります。
すべてのテーブルで UNION ALL を実行してから条件をフィルタリングするのが最善ですか、それとも UNION ALL を実行する前に各テーブルの混合に条件を投入するのが最善ですか?
各テーブルはわずか数千レコードであり、最終的にフィルター処理されたリストは通常 1,000 未満であり、レポート用に出力されます。
Foxpro アプリがテーブルを生成しますが、この側ではデータベース設計をほとんど制御できません。
解決
一般に、クエリのできるだけ早い段階で行数を減らすことをお勧めします。これは、結合された結果セットをフィルタリングするのではなく、各クエリをフィルタリングすることを意味します。結合後にフィルタリングすると、UNION ALL セットで一時テーブルが作成される可能性があります。テーブルが大きい場合、これは最善ではありません (つまり... 大きい).
上記の「一般的な良い慣行」に対する例外は受け入れられると思います...フィルターを 1 か所に配置すると、クエリの可読性と保守性が大幅に向上する場合。(そして、利益は潜在的な損失を上回ります)。
所属していません StackOverflow