何が最善なのか、または違いがあるのか を判断するのに苦労していますが、これを理解するのに役立つ資料が見つからないので、私ではない場合は、この質問をします。同じ状況に陥ります。
join の前後にサブクエリを集約すると、私の特定の状況では、断片化されたデータと不適切な正規化手順のためにサブクエリがかなり遅くなります。
非常に複雑なメインクエリと、ユニオンを使用して結合された3つの小さなクエリから構築されたサブクエリを取得しました(重複レコードを削除します)。このサブクエリから(行ごとに)単一の値のみが必要なので、ある時点で、この値を合計することになります(必要な制御データをグループ化して、結合できるようにします)
何が最も大きな影響を与えるでしょうか?
- 結合前にサブクエリを合計してから、集計されたバージョンと結合するには
- データを生のままにして、残りのメインクエリと一緒に値を合計するには
行ごとに合計される数千のレコードがあり、データはネイティブではなく構築されているため、メモリに存在する可能性があることを覚えておいてください (これは、クエリオプティマイザーの観点からの推測にすぎません)。