次の方法で共有


共有性の高いレポートのキャッシュ

Crystal Reports for Visual Studio プロジェクトのスケーラビリティを最適化する方法の 1 つとして、共有性の高い状態でレポートをキャッシュする方法があります。

レポートを共有性の高いレポートとして定義する要素

全ユーザに関係のある一般的な情報を含むレポートは、高い共有性を有します。たとえば、会社全体の四半期の利益を示すレポートなどです。逆に、社員個人の繰越し休暇日数を示すレポートなどはユーザー固有のものであり、共有性は低くなります。

永続性と共有性

ほとんどのレポートは、数ページの再ロードの間に表示され、レポートの別のページを表示させるか、ビューアのツールバーまたはランタイム コードとの対話に基づく変更を反映させる必要があります。ページの再ロード間にもレポートの状況を保持するには、レポートをサーバーのメモリに保存、または永続する必要があります。

選択可能な永続アプローチは複数存在します。これらのアプローチは、「Crystal Reports で使用する適切な永続アプローチの選択」で詳細に説明されています。しかし、ほとんどのレポートは、ユーザーの Session オブジェクトまたはアプリケーションの Cache オブジェクトに配置されることにより永続します。共有性の低いレポートは、ユーザーの Session オブジェクトを使って永続する必要があります(「セッションと ReportDocument オブジェクト 「Session と ReportDocument オブジェクト モデルの永続」」を参照してください)。共有性の高いレポートは、アプリケーションの Cache オブジェクトを使って永続する必要があります(「Cache と ReportDocument オブジェクト モデルの永続」を参照してください)。

永続性とスケーラビリティ

永続機能を適切に使用すると、サーバー メモリの不必要な使用が避けられ、スケーラビリティが向上します。たとえば、共有性の低いレポートがアプリケーションの Cache オブジェクトに置かれていると、ユーザーがアプリケーションを終了させた後もユーザー固有のレポートが Cache に残るため、メモリを消費することになります。逆に、共有性の高いレポートがユーザーの Session オブジェクトに置かれていると、レポート インスタンスが 1 つだけ必要な場合でも多くのレポート インスタンスが保存されることになり、メモリが消費され、膨大な冗長性が発生します。

ユーザー レベルの永続(Session)を共有性の低いレポートに使用し、アプリケーション レベルの永続(Cache)を共有性の高いレポートに使用すると、サーバー メモリのスケーラビリティを最大限に向上できます。