システム開発ブログ

データベース

SQL AZUREと接続するシステムのパフォーマンス対応

オンプレミスのSQL Serverを利用したプロジェクトを、
SQL AZUREに移行するときに、データ処理のパフォーマンスがより重要となります。


この前に、SQL AZUREに移行したシステムはデータの登録が遅いため、
どのようにすればレスポンスが向上できるかという課題がありました。
今回その解決過程についてお話したいと思います。

今回のプロジェクトのデータ登録は主に以下の流れで処理が行われました。
①入力チェック
②排他チェック
③データ登録用のSQL文の作成
④SQL AZUREとの接続
⑤SQL AZUREでデータの更新

レスポンス対策を見つけるためには、各処理に掛かる時間を把握する必要があります。
パフォーマンスが悪い部分を見つけた上でレスポンス対策を検討します。
対策が必要なプログラムを調査すると、
入力チェックは全体の処理の3/4時間を掛けてしまいました。
原因としては、登録画面が明細形式の画面で行単位でループしながら、
SQL AZUREと接続してデータの存在などのチェックを行ったためです。

接続先がオンプレミスのSQL Serverでしたら、
レスポンスが遅いと感じらないかもしれませんが、
接続先がクラウドサーバーのSQL AZUREの場合、
ネットワーク通信に掛かる時間を考えないといけないことになります。

以上のことから頻繁にSQL AZUREと接続してデータを取得するのは、
効率が悪いので、SQL AZUREと接続する回数を減少することで、
レスポンスを向上させるようにしました。

具体的なやり方としては、
ループして行単位で各項目のチェック時に毎回DB接続するのではなく、
事前処理として、エラーチェックに必要なデータを取得しDataSetに格納しておきました。

その後のエラーチェック時には、DataSetからデータを取得することで、
少ない回数でSQL AZUREと接続してネットワーク通信時間が少なくなり、
パフォーマンスが向上させるようになりました。

プロジェクトによって性能ネックになる箇所が変わっていますので、
以下のサイトを参考しながら、性能ネックを見つけてレスポンス対応を行うのが
よいでしょう。
http://gihyo.jp/admin/serial/01/sql_azure/0005
http://www.windowsazure.com/ja-jp/develop/net/best-practices/performance/

システム周りのお悩みを解決します

まずは無料ダウンロード

この記事に関連する記事の一覧


システム開発ブログ

Twitterでilovex_officialをフォローしてください

カテゴリー

以前の部署別ブログ

ページのトップ