Reporting Services でのレポートのキャッシュ

レポート サーバーでは、処理済みレポートのコピーをキャッシュして、ユーザーがレポートを開いたときにそのコピーを返すことができます。レポートがキャッシュされたコピーかどうかをユーザーが判断できる唯一の方法は、レポートが実行された日時を確認することです。その日時が現在の日時ではなく、レポートがスナップショットでない場合、そのレポートはキャッシュから取得されたレポートです。

レポートのサイズが大きい場合やレポートが頻繁にアクセスされる場合、キャッシュを行うことでレポートの取得にかかる時間を短縮できます。サーバーを再起動した場合、レポート サーバー Web サービスをオンラインに戻すと、キャッシュされたすべてのインスタンスが修復されます。

キャッシュは、パフォーマンスを向上させる技法です。キャッシュのコンテンツは変動するので、レポートを追加、置換、または削除すると変更できます。より予測可能なキャッシュ方法が必要な場合、レポート スナップショットを作成する必要があります。詳細については、「レポート処理プロパティの設定」を参照してください。

注意注意

Reporting Services では、データベースに一時ファイルが保持され、ユーザー セッションやレポート処理のサポートに使用されます。これらのファイルは内部使用を目的にキャッシュされ、単一のブラウザ セッションの間、表示状態の整合性を保つために使用されます。内部使用を目的とした一時ファイルのキャッシュ方法の詳細については、「レポート サーバー データベース」を参照してください。

キャッシュされたインスタンス

キャッシュされたレポートのインスタンスは、レポートの中間形式に基づいています。通常、レポート サーバーでは、レポート名に基づいてレポートのインスタンスが 1 つキャッシュされます。ただし、クエリ パラメータに基づいてレポートに別のデータを含めることができる場合、任意の指定された時間に複数のバージョンのレポートがキャッシュされることがあります。たとえば、パラメータ値として地域コードを取得するパラメータ化されたレポートがあるとします。4 人の異なるユーザーが、4 つの一意の地域コードを指定した場合、キャッシュされたコピーが 4 つ作成されます。

一意の地域コードを含んだレポートを実行する最初のユーザーは、その地域のデータを含むキャッシュされたレポートを作成します。同じ地域コードを使用してレポートを要求する後続のユーザーは、キャッシュされたコピーを取得します。

すべてのレポートをキャッシュできるわけではありません。レポートにユーザー依存データが含まれる場合、レポートで資格情報の入力が必要となる場合、またはレポートで Windows 認証が使用される場合は、レポートをキャッシュできません。

キャッシュの更新

以前にキャッシュされたコピーの有効期限が切れた後でユーザーがレポートを選択すると、キャッシュされたレポートが新しいバージョンに置き換えられます。キャッシュされたインスタンスとして実行するように構成されたレポートは、有効期限の設定に基づいてキャッシュから定期的に削除されます。レポートの有効期限は分単位で設定することもできますし、スケジュールされた時間に設定することもできます。どちらの設定を使用するかは、データに要求される即時性に基づいて決定します。SOAP API を使用する場合を除いて、キャッシュからレポートを直接削除することはできません。

キャッシュの有効期限を構成するには、共有スケジュールまたはレポート固有スケジュールを使用します。共有スケジュールを使用し、その後に続けて共有スケジュールを一時停止した場合、スケジュールが無効の間はキャッシュ期限が切れることはありません。続けて共有スケジュールを削除した場合、スケジュール設定のコピーがレポート固有スケジュールとして保存されます。

スケジュールの有効期限が切れた場合、またはキャッシュの有効期限日にスケジュール エンジンを利用できない場合は、スケジュールを延長するか、スケジュールされているサービスを開始することで、スケジュールされた操作を再開できるまでレポート サーバーでアクティブなレポートが実行されます。

キャッシュの事前読み込み

キャッシュの事前読み込みを使用すると、サーバーのパフォーマンスを向上できます。パラメータ化された一連のレポート インスタンスをキャッシュに事前に読み込むには、NULL 配信プロバイダを使用するデータ ドリブン サブスクリプションを作成します。NULL 配信プロバイダを配信方法としてサブスクリプションに指定すると、レポート サーバーはレポート サーバー データベースを配信先に設定し、NULL 表示拡張機能と呼ばれる特殊な表示拡張機能を使用します。

この機能は、パラメータ化されたレポートの複数のインスタンスをキャッシュする場合に特に役立ちます。この場合、さまざまなレポートのインスタンスを生成するために個別のパラメータ値が使用されます。レポートには、クエリ ベースのパラメータのみを指定できることに注意してください。NULL 配信プロバイダでは、他の配信拡張機能とは異なり、サブスクリプションの定義から構成できる配信設定がありません。

データ ドリブン サブスクリプションを作成する場合、キャッシュに対するレポートの配信頻度をスケジュールする必要があります。古いコピーの有効期限が切れていない場合、新しいコピーはキャッシュに配信されません。したがって、レポートの実行プロパティの構成には、キャッシュの有効期限の設定を含める必要があります。この有効期限の設定には、定義するサブスクリプションのスケジュールとの一貫性が必要です。たとえば、毎晩実行されるサブスクリプションを作成する場合、サブスクリプションが実行される前に、キャッシュも毎晩、有効期限切れになる必要があります。実行プロパティに有効期限の日時が含まれていない場合、新しい配信が無視されます。プロパティの設定の詳細については、「レポート処理プロパティの設定」を参照してください。データ ドリブン サブスクリプションの使用に関する詳細については、「データ ドリブン サブスクリプション」を参照してください。

キャッシュが有効期限切れとなる条件

レポート定義の変更、レポート パラメータの変更、データ ソースの資格情報の変更、レポート実行オプションの変更などのイベントが発生すると、キャッシュされたレポートが無効になります。キャッシュに格納されたレポートを削除する場合、キャッシュされたバージョンのレポートも削除されます。

何らかの理由で、キャッシュされたインスタンスでレポートを実行できない場合 (たとえば、ユーザーが指定したパラメータ値が、キャッシュされたレポートの生成に使用するパラメータ値と異なる場合)、レポート サーバーでレポートが再実行されます。