web-dev-qa-db-ja.com

SQL Server-レポート用の別のデータベース?

SQL Serverには、Webアプリごとにデータベースがあります。レポートの場合、Reporting Servicesを使用し、すべてのレポートデータ(レポートパラメーターを含む)はストアドプロシージャから取得されます。

ストアドプロシージャは、レポートのデータと同じデータベースにあります。したがって、たとえば、Stockレポートを提供するprocはStockデータベースにあります。一部のレポートには複数のデータベースからの情報が表示され、プロシージャはそれらのソースデータベースの1つにあります。レポートパラメータは、店舗、従業員などのデータを含むエンタープライズデータベースのプロシージャからデータを取得します。

つまり、すべてのレポートには、少なくともエンタープライズデータベースへの接続と別のデータベースへの接続があり、場合によってはそれ以上の接続があります。

私の質問は次のとおりです。レポートプロシージャを別の「レポート」データベースに移動することには利点がありますか。レポートを別のサーバーに移動することの利点はわかっていますが、それについては話していません。これは同じサーバー上で行われることになります。

これに影響する可能性があるものは次のとおりです。

  • レポートに複数のデータベース接続があると、レポートの速度に影響しますか?
  • レポートプロシージャをデータとは別のデータベースに置くと、インデックス付きビューを使用できなくなりますか?
  • 別のデータベースでレポートを管理する方が簡単/難しいと感じましたか?

ご意見をお聞かせください。

19
Craig HB

答えは次のとおりです。そうです。そうすることにはメリットがあります。運用データベースに関するレポートは、多くのリソースを使用し、運用システムのパフォーマンスを妨害します。データベースのパフォーマンスは機械的な制約(ディスクヘッドが前後に移動すること、および適切なセクターがヘッドの下に現れるのを待つときの回転待ち時間)の影響を受けることに注意してください。レポート戦略には2つの広範なオプションがあります。

  1. データベースを複製する を別のサーバーに移動し、レポートsprocをそのサーバーに移動します。レポートは複製サーバーから実行されます。これは最小の労力であり、既存のレポートとストアドプロシージャを再利用できます。
  2. 本番システムからのデータを統合し、それを レポートに非常に使いやすい形式 に変換する Data Warehouse を構築します。 「昨日の取引終了」の時点でスナップショットから許容できるほど多くのアドホック統計レポートを作成できる場合は、データウェアハウスの方が適している可能性があります。

実行しているSPの種類に大きく依存すると思います。それらが重く、データベースサーバーで実行している他のことに影響を与える可能性がある場合は、それらを移動します。それ以外の場合は、保守と追跡がはるかに容易であることがわかった場合は、実際にレポートしているデータベースの近くに保管します。レポートを実際のデータベースの近くに置くだけでもパフォーマンスに影響を与える可能性がありますが、標準の設定で大量に移動しない場合私が推測する小さな違いになるデータの。

this の記事も参考になりました。

2
Riri

いくつかの理由で、ストアドプロシージャを別のデータベースに移動しないことをお勧めします。開発の観点からは、変更を加えるたびに2つのデータベースを複製する必要があります。結果として、「データ」データベースのスキーマと2番目のデータベースのストアドプロシージャを本番バージョンと同期する方法を説明します。災害復旧とバックアップ/復元に関しては、システムを稼働させるためだけに、2つのデータベースの復元に注意する必要があります。

テスト時には複雑さも加わります。権限、バージョンなどに関して、より多くの障害点があります。データベースでさまざまなイニシアチブに取り組んでいる人が2人以上いる場合、調整に費やす時間を増やすことができます。午前3時を想像してみてください。システムがダウンしていて、すべてのデータベースのアクセス許可を調べ、開発中に間違ったデータベースに関数やプロシージャを残していないことを確認する必要があります。

1
David Robbins

2つのデータベースを使用することをお勧めします。

「ライブ」データベースからレポートを取得すると、パフォーマンスの問題が発生します。

また、レポートデータベースは主に検索用であるため、パフォーマンスを向上させるためにここでインデックスをカスタマイズできます。 (ライブデータベースには、特定のインデックスによって悪影響を受ける挿入が含まれます)

1
Vivek Kodira

別のアプローチは、レポートテーブルを個別のスキームと個別のファイルグループに移動することです。レポートファイルグループ内のファイルは、データハードディスクから移動できます。これにより、管理、将来の開発、アクセス管理がはるかに簡単になります。

0
QuickJoe