VB.NETの技術メモ~DBアクセスの高速化(バインド変数の使用)後編~

my-hobby : VB.NETの技術メモ~DBアクセスの高速化(バインド変数の使用)前編~では、DBアクセス時に動的にSQLを生成したケースと、バインド変数を使用してSQLを生成したケースを紹介しました。
本編では、計測結果を比較・検証したいと思います。

先ずは、動的にSQLを生成したケースの結果(処理時間)は以下の通りでした。
交互にそれぞれ3回同じ処理を行いました。
●1回目(動的にSQLを生成したケース)
[vbnet]
2010/01/19 21:09:13
2010/01/19 21:09:22:700000
[/vbnet]

●1回目(バインド変数を使用してSQLを生成したケース)
[vbnet]
2010/01/19 21:09:34
2010/01/19 21:09:42:700000
[/vbnet]

●2回目(動的にSQLを生成したケース)
[vbnet]
2010/01/19 21:10:23
2010/01/19 21:10:32:700000
[/vbnet]

●2回目(バインド変数を使用してSQLを生成したケース)
[vbnet]
2010/01/19 21:10:34
2010/01/19 21:10:41:700000
[/vbnet]

●3回目(動的にSQLを生成したケース)
[vbnet]
2010/01/19 21:11:11
2010/01/19 21:11:20:700000
[/vbnet]

●3回目(バインド変数を使用してSQLを生成したケース)
[vbnet]
2010/01/19 21:11:45
2010/01/19 21:11:52:700000
[/vbnet]
※2行目の700000という数字は、DBから郵便番号(7桁)が10万回読み込めた事を証明しています。

動的にSQLを生成したケースは平均9秒、バインド変数を使用してSQLを生成したケースは平均7.3秒。
う~ん微妙な感じ。。。
数件の処理でこの違いであれば、かなりの改善ということになりますが 、10万件の処理でこの結果ということは、今回のテストケース自体が簡単過ぎたからでしょうか?
もう少し複雑な処理や、数百万件という大量のデータを扱う様なケースであれば、更なるパフォーマンス向上が見込めるのかも知れません。
逆に言えばこの様な単純な処理でも、結果にここまで差が出た事は、それなりにパフォーマンス向上の効果が出たと言えるのではないでしょうか?

カテゴリー: flashcast, VB.NET パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です