0

アプリケーションにSQLAzureを使用しており、レポート用に大量のデータをスキャンするクエリを処理する方法についていくつかの入力が必要です。私たちのアプリケーションは読み取り/書き込みの両方を集中的に行うため、レポートクエリが残りの操作をブロックすることは望ましくありません。

長時間実行されるクエリによって引き起こされる接続プールの問題を回避するために、ワーカーロールにレポートするためにDBにクエリを実行するコードを配置します。これでも、データベースが大量の読み取り専用クエリに見舞われることを回避できません。

ここで欠落しているものはありますか?すべてのレポート呼び出しがヒットする読み取り専用レプリカをセットアップできますか?

任意の提案をいただければ幸いです。

4

4 に答える 4

2

SQL AzureDataSyncをご覧ください。これにより、レポートデータベースを段階的に更新できます。

ここにあなたが始めるためのいくつかのリンクがあります

http://msdn.microsoft.com/en-us/library/hh667301.aspx

http://social.technet.microsoft.com/wiki/contents/articles/1821.sql-data-sync-overview.aspx

それでもまだCTPにあると思います。

于 2012-10-30T11:14:34.317 に答える
2

これはどう:

  1. レポート用に別の接続文字列を作成します。たとえば、別のアプリケーション名を使用します
  2. レポートクエリには、SET TRANSACTION ISOLATIONLEVELSNAPSHOTを使用します

これにより、長時間実行されるクエリが運用クエリをブロックするのを防ぐことができます。これにより、レポートを一貫して読み取ることもできます。

于 2012-11-01T05:07:37.223 に答える
1

レポートについて話しているので、リアルタイムのデータは必要ないと思います。その場合は、本番データベースのコピーを定期的に(たとえば、12時間ごとに)作成することを検討できます。

SQL Azureでは、コピーを作成するのは非常に簡単です。

-- Execute on the master database.
-- Start copying.
CREATE DATABASE Database1B AS COPY OF Database1A;

レポートは、実際の本番データベース(Database1A)に影響を与えることなくDatabase1Bで行われます。

于 2012-10-29T15:13:27.717 に答える
1

読み取り専用のクエリがたくさんあると言っています...それらをキャッシュする可能性はありますか?(読み取り専用なので完璧です)

どのレポートツールを使用していますか?必要に応じて、クエリを出力キャッシュすることもできます。

于 2012-10-29T21:13:12.927 に答える