ユーザーがログインして大量のデータ (MS SQL Server 2016) をクエリし、結果のグラフを表示するダッシュボード Web アプリケーションがあります。データも頻繁に (たとえば 1 時間ごとに) 変更されます。パフォーマンスは特に重要です。
パフォーマンスを向上させるために、大量の処理を処理する一時テーブルを一度作成し、そのテーブルを複数回再クエリして (たとえば、さまざまなフィールドでグループ化)、さまざまなグラフを生成できることがわかりました。ユーザーが最初にログインしたときに、このメソッドを使用して、ユーザーの多くのグラフ データを一度にすばやく事前計算できます。これは、毎回クエリ全体を実行するよりもはるかに効率的です (つまり、20 個のチャートのそれぞれに対して個別に「一時テーブル + グループ化」を実行します)。
ただし、ユーザーがログインすると、一時テーブルのデータを再利用できる他のアクションを実行できます。理想的には、後続のリクエストごとに一時テーブルを再作成したくないので、クライアント ログインの存続期間中、一時テーブルを再利用したいと考えています。
ユーザーごとに個別のテーブルが必要になるため、グローバルテーブルを使用できるとは思いません。また、クライアントでユーザーのセッションがタイムアウトした場合、SQL Server はテーブルを削除するタイミングを認識できず、多くの古い一時テーブルと大量のデータが蓄積される可能性があります。
理想的には、1 時間ごとに有効期限が切れるセッション一時テーブルが必要です。これにより、クライアントは後続の複数のリクエストのデータにアクセスでき、それほど頻繁に再作成する必要がなくなります。
これを行うためのオプションは何ですか?