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