私は最近、すべての DB データ オブジェクトと DB 接続オブジェクトを含む、セッション変数に大量のものを入れる ASP 1.1 Web アプリケーションに出くわしました。途端に巨大化。Web セッションがタイムアウトすると (ユーザーがアプリケーションの使用を終了してから 4 時間後)、データベース トランザクションがロールバックされることがあります。これは、IIS がセッションを強制終了したときに DB 接続が適切に閉じられていないことが原因であると想定しています。
とにかく、私の質問はセッション変数に何を入れるべきですか? 明らかにいくつかのものがそこにある必要があります。ユーザーはメイン画面で編集するプランを選択するため、プラン ID がセッション変数に入ります。ユーザー(およびそのマネージャーなど)に関するすべての詳細と、ユーザーが編集している計画をセッション変数に保存することで、DB の負荷を軽減しようとする方がよいでしょうか、それともセッション変数の内容を最小限に抑えるように努めるべきでしょうか。 Page_Load イベントで必要なものすべてを DB に照会しますか?