レポートのキャッシュ (SSRS)
レポート サーバーでは、処理済みレポートのコピーをキャッシュして、ユーザーがレポートを開いたときにそのコピーを返すことができます。 レポートがキャッシュされたコピーかどうかをユーザーが判断できる唯一の方法は、レポートが実行された日時を確認することです。 その日時が現在の日時ではなく、レポートがスナップショットでない場合、そのレポートはキャッシュから取得されたレポートです。
レポートのサイズが大きい場合やレポートへのアクセスが頻繁に行われる場合、キャッシュを行うことでレポートの取得にかかる時間を短縮できます。 サーバーを再起動した場合、レポート サーバー Web サービスをオンラインに戻すと、キャッシュされたすべてのインスタンスが修復されます。
キャッシュは、パフォーマンスを向上させる技法です。 キャッシュのコンテンツは変動するので、レポートを追加、置換、または削除すると変更できます。 より予測可能なキャッシュ方法が必要な場合、レポート スナップショットを作成する必要があります。 詳細については、「レポート処理プロパティの設定」を参照してください。
Note
Reporting Services では、データベースに一時ファイルが保持され、ユーザー セッションやレポート処理のサポートに使用されます。 これらのファイルは内部使用を目的にキャッシュされ、単一のブラウザー セッションの間、表示状態の整合性を保つために使用されます。 内部使用を目的とした一時ファイルのキャッシュ方法の詳細については、「レポート サーバー データベース (SSRS ネイティブ モード)」を参照してください。
キャッシュされたインスタンス
キャッシュされたレポートのインスタンスは、レポートの中間形式に基づいています。 通常、レポート サーバーでは、レポート名に基づいてレポートのインスタンスが 1 つキャッシュされます。 ただし、クエリ パラメーターに基づいてレポートに別のデータを含めることができる場合、任意の指定された時間に複数のバージョンのレポートがキャッシュされることがあります。 たとえば、パラメーター値として地域コードを取得するパラメーター化されたレポートがあるとします。 4 人の異なるユーザーが、4 つの一意の地域コードを指定した場合、キャッシュされたコピーが 4 つ作成されます。
一意の地域コードを含んだレポートを実行する最初のユーザーは、その地域のデータを含むキャッシュされたレポートを作成します。 同じ地域コードを使用してレポートを要求する後続のユーザーは、キャッシュされたコピーを取得します。
すべてのレポートをキャッシュできるわけではありません。 レポートにユーザー依存データが含まれる場合、レポートで資格情報の入力が必要となる場合、またはレポートで Windows 認証が使用される場合は、レポートをキャッシュできません。
キャッシュの更新
以前にキャッシュされたコピーの有効期限が切れた後でユーザーがレポートを選択すると、キャッシュされたレポートが新しいバージョンに置き換えられます。 キャッシュされたインスタンスとして実行するように構成されたレポートは、有効期限の設定に基づいてキャッシュから定期的に削除されます。 レポートの有効期限は分単位で設定することも、スケジュールされた時間に設定することもできます。どちらの設定を使用するかは、データに要求される即時性に基づいて決定します。 SOAP API を使用する以外の方法で、キャッシュからレポートを直接削除することはできません。
キャッシュの有効期限を構成するには、共有スケジュールまたはレポート固有スケジュールを使用します。 共有スケジュールを使用し、そのスケジュールがその後に一時停止された場合、スケジュールが停止している間はキャッシュ期限が切れることはありません。 その後に共有スケジュールが削除された場合、スケジュール設定のコピーがレポート固有スケジュールとして保存されます。
スケジュールが期限切れになった場合、またはスケジュール エンジンがキャッシュの有効期限日に使用できない場合、レポート サーバーはライブ レポートを実行します。 このアクションは、スケジュールされた操作を再開できるようになるまで続行されます。 スケジュールされた操作は、スケジュールを延長するか、スケジュール サービスを開始するときに再開できます。
キャッシュを事前に読み込む
キャッシュの事前読み込みを使用すると、サーバーのパフォーマンスを向上できます。 パラメーター化されたレポートのインスタンスのコレクションをキャッシュに事前に読み込むには、次の 2 つの方法があります。
キャッシュの更新プランを作成します。 更新プランを作成すると、1 つのレポートのスケジュールや共有スケジュールを指定できます。
NULL 配信プロバイダーを使用するデータ ドリブン サブスクリプションを作成します。 NULL 配信プロバイダーを配信方法としてサブスクリプションに指定すると、レポート サーバーはレポート サーバー データベースを配信先に設定します。 サーバーは、NULL 表示拡張機能と呼ばれる特殊な表示拡張機能を使用します。 NULL 配信プロバイダーでは、他の配信拡張機能とは異なり、サブスクリプションの定義から構成できる配信設定がありません。
レポートのキャッシュは、パラメーター化されたレポートの複数のインスタンスをキャッシュする場合に特に役立ちます。この場合、さまざまなレポートのインスタンスを生成するために個別のパラメーター値が使用されます。 レポートには、クエリ ベースのパラメーターのみを指定できます。
スケジュールを指定する場合や、データ ドリブン サブスクリプションを作成する場合は、キャッシュに対するレポートの配信頻度をスケジュールする必要があります。 古いコピーの有効期限が切れていない場合、新しいコピーはキャッシュに配信されません。 したがって、レポートの実行プロパティの構成には、キャッシュの有効期限の設定を含める必要があります。 この有効期限の設定には、定義するサブスクリプションのスケジュールとの一貫性が必要です。 たとえば、毎晩実行されるサブスクリプションを作成する場合、サブスクリプションが実行される前に、キャッシュも毎晩、有効期限切れになる必要があります。 実行プロパティに有効期限の日時が含まれていない場合、新しい配信が無視されます。 キャッシュの更新の詳細については、「 スケジュール」を参照してください。 プロパティの設定方法については、「レポート処理プロパティの設定」を参照してください。 データ ドリブン サブスクリプションの使用に関する詳細については、「データ ドリブン サブスクリプション」を参照してください。
キャッシュが有効期限切れとなる条件
レポート定義の変更、レポート パラメーターの変更、データ ソースの資格情報の変更、レポート実行オプションの変更などのイベントが発生すると、キャッシュされたレポートが無効になります。 キャッシュに格納されたレポートを削除する場合、キャッシュされたバージョンのレポートも削除されます。
何らかの理由でキャッシュされたインスタンスからレポートを表示できない場合、レポート サーバーはレポートを再実行します。 このアクションにより、正しい更新されたパラメーター値を使用してレポートが生成されます。