質問

私たちの組織によって作成されたクリスタルレポートの場合、および一部のERAソフトウェアプロバイダーは、ビューやストアドプロシージャを使用してデータを収集するのではなく、レポートのデータセットに物理テーブルを使用する傾向があることに気付きました。時折、レポートが保存された手続きを使用しているのを見てきました。 物理的 データセットを保存および操作するための一時テーブルではなく、テーブル。これらの場合、レポート出力はしばしばのようなテーブルとして存在します rpt_ap_vendors 同様であり、使用していない場合はデータがない場合とない場合があります。

これらは常にレポートがオンデマンドで生成される場合であるため、これはレポートを1回生成して複数回提供できる場合ではなく、複数のレポート/ストアドプロシージャがこのデータに同時にアクセスすることはありません。

このようなレポートに物理テーブルを使用する理由は何ですか?そうするための論理的、技術的、またはパフォーマンス関連の理由はありますか?レポートの生成において、私は常に、一時的なテーブルまたはより良い導出されたテーブルを備えたビューとストアドプロシージャを常に使用しています。

役に立ちましたか?

解決

(+)レポートデータを保存する物理テーブルを作成する理由:

  • レポートデータは再利用可能です。 Crystal ReportsまたはSharePointをテーブルに向けてから、それらのツールまたはエンドユーザーがデータにアクセスする頻度またはいつまたはいつでも心配しないでください。 (まあ、ある程度、大きなレポートテーブルを繰り返し読んでいるので、バッファキャッシュを破壊します。)私は、「昨年のレポートをもう一度生成できますか?私はできますか?当時私が抽出したCSVが見つかりません。」

    これがおそらくあなたのサイトでそのように設定されている主な理由です。 Crystal Reportsは、ユーザーがレポートデータを介してページングしたり、レポートの設定を変更したりするにつれて、レポートデータをキャッシュするほど賢くない場合があります。したがって、最悪の場合、CRはこれらのアクションのそれぞれでレポートを再生しています - 費用と時間のかかる操作です。物理的なテーブルを使用すると、必要に応じて何度もテーブルを再征服します。

  • レポートのアクセス許可を設定するのは簡単です。 このレポートを見たいですか?まあ、あなたが必要とするのは、結果を読む許可だけです、 それらを生成しないでください. 。したがって、ここでは、ロックダウンスキーマとファイルグループ/テーブルスペースで、このテーブルにいくつかの読み取り権があります。

手動でキャッシュすることにより、レポートを制御し、生成するプロセスを隔離します。あなたはあなたのレポートを読者にもっと自由に行動する自由を与え、あなた自身はDBAとして心配することを少なくします。

( - )物理レポートテーブルで失うもの:

  • 柔軟性。 レポートを変更したいですか? Argh、DDLの変更が必要です。
  • 収納スペース。 ディスク上のデータを保持しているので、duh。

他のヒント

以前の雇用主では、レポートの一部は実行に何時間もかかります。月末と四半期のレポートは最悪でした(それぞれ8時間と20時間)。結果を計算し、それらを恒久的なテーブルに保存することにより、ユーザーはその場で数値を再計算することなく、気まぐれなレポートの結果を見ることができます。レポートを計算したプロセスは、中断された場合に再起動することができたので、それも役立ちました。南フロリダのその地域では、毎日複数の2番目の停電がありました。同社は悪天候の日のためにオンサイトで発電機を持っていましたが、すべてのスタッフが盛り上がっているわけではありません。

「パワーユーザー」の一部は、データにアクセスしてExcelの数値を計算できるようにしたいと考えていたため、レポートテーブルへの読み取り専用アクセスがありました。

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top