1

約 426 GB (インデックスを含む) で約 3 億行の、適切なサイズの書き込み負荷の高いデータベースがあります。現在、数分ごとにサーバーに報告するデバイスから位置データを収集しており、約 10,000 台のデバイスにサービスを提供しているため、毎秒大量の書き込みが行われています。各デバイスの位置を格納する位置テーブルには、約 2 億 2,300 万行あります。データは現在、年ごとにアーカイブされています。

ユーザーがこのデータベースで大きなレポートを実行すると問題が発生し、データベース全体がほぼ停止します。

レポート データベースが必要なのは理解していますが、質問は、同等のサイズのデータ​​ベースで SQL Server トランザクション レプリケーションを使用した経験があり、このテクノロジを使用した経験があるかどうかです。

私の大まかな計画は、アプリケーション内のすべてのレポートをレポート データベースに向け、トランザクション レプリケーションを使用してマスターからスレーブ (レポート データベース) にデータをレプリケートすることです。

この戦略と私が遭遇する可能性のある問題について何か考えがある人はいますか?

どうもありがとう!

4

2 に答える 2

0

このシナリオでは、トランザクション レプリケーションが適切に機能します (データベースのサイズによる唯一の影響は、最初のスナップショットの生成にかかる時間です)。ただし、問題が解決しない場合があります。

トランザクション レプリケーションを選択した場合に発生する問題は、変更が適用されると、スレーブ サーバーがマスター マシンと同じ負荷になることです。ユーザーが大きなレポートを実行すると、スレーブ サーバーは引き続きクロールされます (同様のレポートであると仮定すると)。仕様)。

データをライブ データに報告する際の許容可能な待機時間によっては、ユーザーにとってこれが問題ない場合もあります。

変更はバッチで適用されるため、多少の遅延が許容できる場合は、ログ配布のパフォーマンスが向上する可能性があります。

レポート サーバーを取得する前に、別の方法として、ユーザーが実行しているクエリを調査し、コードまたはインデックス作成戦略を変更して、実行しようとしている内容に一致させることを検討します。

于 2010-07-07T08:17:09.603 に答える