質問

特定の基準のみで在庫調整を検索するには、15 の監査証跡テーブルを組み合わせる必要があります。

すべてのテーブルで UNION ALL を実行してから条件をフィルタリングするのが最善ですか、それとも UNION ALL を実行する前に各テーブルの混合に条件を投入するのが最善ですか?

各テーブルはわずか数千レコードであり、最終的にフィルター処理されたリストは通常​​ 1,000 未満であり、レポート用に出力されます。

Foxpro アプリがテーブルを生成しますが、この側ではデータベース設計をほとんど制御できません。

役に立ちましたか?

解決

一般に、クエリのできるだけ早い段階で行数を減らすことをお勧めします。これは、結合された結果セットをフィルタリングするのではなく、各クエリをフィルタリングすることを意味します。結合後にフィルタリングすると、UNION ALL セットで一時テーブルが作成される可能性があります。テーブルが大きい場合、これは最善ではありません (つまり... 大きい).

上記の「一般的な良い慣行」に対する例外は受け入れられると思います...フィルターを 1 か所に配置すると、クエリの可読性と保守性が大幅に向上する場合。(そして、利益は潜在的な損失を上回ります)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top