データの整合性が最も重要です。
ビューで結果を計算すると、最新の回答が得られることが保証されます。トレードオフは、特に結果が WHERE 句で使用される場合の SELECT ステートメントの実行時のパフォーマンスです。私の経験では、計算の結果が WHERE 句で使用されることはほとんどありません。計算とは、算術演算だけでなく、文字列と部分文字列の抽出と連結、チェックサム計算などを意味します。
計算結果をベース テーブルに格納すると、SELECT のパフォーマンスが最高になります。トレードオフはデータの整合性です。結果が常に正しいことを保証する CHECK() 制約を記述できる場合は、それを行う必要があります。しかし、複雑な計算に対する CHECK() 制約は、ユーザー定義関数を使用しないと表現できない場合があり、すべてのプラットフォームが CHECK() 制約でユーザー定義関数をサポートしているわけではありません。
CHECK() 制約を記述できない場合でも、データのエラーを定期的にチェックする何らかの手順が必要です。最悪の場合、需要が少ないときに毎日または毎週レポートを実行できます。
マテリアライズド ビューは、両方の長所を活用できる可能性があります。つまり、検索可能な WHERE 句の対象となり、常に正しいことが保証される計算です。(SQL Server に相当するものはインデックス付きビューと呼ばれます。) トレードオフは、ストレージ スペースと、実体化されたビューとそのインデックスをベース テーブルの更新後に最新の状態に保つために必要な CPU サイクルです。
通常、最初にビューを試します。しかし、あなたの特定のケース (365 日間、1 日あたり 40 万行) では、最初に具体化されたビューを試してみると思います。何らかの理由でうまく機能しない場合は、ベース テーブルの列に置き換え、マテリアライズド ビューを削除し、同じ名前の新しいビューを作成できます。(論理データの独立性は揺るぎません。)