Windows Azure SQL Reportingのパフォーマンス改善方法

Windows Azure SQL Reportingを使用しているとき、レポートの性能改善をするTipsがあります。

レポートがデータセンターをまたがって通信をしているとして、それを確認する方法とそれによる性能への影響を計測することができます。

まずレポートの実行ログを確認します。
Windows Azure管理ポータルを開き、Reportをクリックし、レポートサーバーを選択し、「Download Execution Log」ボタンをクリックします。

ログを確認すると、「Data Retrieval time」が異常に長く見えます。
たとえば、AdeventureWorksを使用して、単純なチャートレポートを生成するレポートを実行したときのログです。

Daata Retrieval timeが、processing/rendering timeよりもとても長くなっています。

ログをよく見ると、レポートではWindows Azure SQL databaseのlet8c0j2n7.database.windows.netを呼び出しています。レポートサーバーは、gejqh25dat.reporting.windows.netです。

Windows Azure管理ポータルで、それぞれを確認すると次のようになっています。

他にロケーションの違いを確認する方法としては、pingを使用する方法があります。

地理的に離れた場所にデータストアとレポートサーバーが設置されていることがわかりました。
香港とアイルランド間のNW遅延が影響して、Data Retrievalが長く(3.3秒)なっていました。

データストアとレポートサーバーを同じデータセンターに配置すると、次の結果のように3.3秒から49ミリ秒に改善しました。

参考

MSDNブログ「A tip on how to improve performance using Windows Azure SQL Reporting」を意訳した投稿です。

実行ログとレポート実行のボトルネックについては次のサイトが参考になります。