1

私の問題により適したものをアドバイスしてください。SQL サーバーがホストされているのと同じサーバーで高負荷の Web アプリをホストしています。また、同じサーバーで SQL サービス レポートを実行して、ユーザー レポートを生成しています。

したがって、私のサーバーは基本的にディスクの読み取り/書き込み速度の上で動作します。別のサーバーを取得し、そこに別の SQL サーバーをインストールして、そこで SSRS をホストします。したがって、私の基準は、できるだけ新しいデータを取得することです。

私はいくつかの解決策を見てきましたが、現在、ジョブを介してバックアップを作成し、それを2番目のサーバーにコピーして、ジョブを介してそこに復元しています。しかし、それは最善の解決策ではありません。

すべてのレプリケーション メカニズム (トランザクション、マージ、スナップショット) は、テーブルをロックすることでパブリッシャー データベースに影響を与えます。

それで、メインのデータベースに影響を与えずに定期的に同期される、読み取り専用アクセスでレプリカを作成する可能性はあるのだろうか? すべてのレポートの負荷をそのレプリカに置き、プライマリ データベースを Web アプリだけが使用するようにします。

私の問題に適した解決策は何ですか? 私は DBA ではないので、その方向性の調査を開始します。ありがとう。

4

1 に答える 1

3

トランザクション レプリケーションは、通常、レポートを別のサーバー/インスタンスにオフロードするために使用され、最良のシナリオではほぼリアルタイムで実行できます。トランザクション レプリケーションの利点は、レポートを最適化するためにサブスクライバーにさまざまなインデックスを配置できることです。レポートにサブセットのみが必要な場合は、データの一部のみを複製することもできます。

トランザクション レプリケーションでロックが発生するのは、スナップショットを生成するときだけです。トランザクション レプリケーションの既定である同時スナップショット処理では、共有ロックは短時間しか保持されないため、ユーザーは中断することなく作業を続けることができます。いずれにせよ、ユーザー アクティビティが少ない期間にスナップショットを生成する可能性が高いため、これは問題にはなりません。

于 2013-11-08T17:11:22.340 に答える