JMeterTweet皆さん、こんばんは。7月もあっという間に10日間が過ぎて、夏真っ盛りになってきました。自分も夏対策でアイス眠というマットレスを購入して夏を乗り越えようと思っております。本日はストアドプロシージャについて検証をしてみたいと思います。ストアドプロシージャとは、一連のSQL文や処理に名前をつけて保存したものです。PHPの関数と同じでSQLを関数みたいにしたものがストアドプロシージャになります。MySQLではストアドプロシージャはMySQLでは5.0から利用が可能です。生PHPで記載したときとのパフォーマンスを比較してみたいと思います。MySQLのストアドプロシージャを呼び出して処理をするPHPプログラムとストアドプロシージャで作成したものと同じSQLを実行するPHPプログラムを作成します。上記2つのプログラムを前回のブログで紹介したJMeterで負荷をかけて、パフォーマンス値を検証してみたいと思います。テスト用のデータ保存用のテーブルを作成します。CHARSET=utf8;次にMySQL用の簡単なストアドプロシージャを作成します。;次にプロシージャを実行するPHPプログラムとプロシージャを展開したPHPプログラムを準備します。null;上記2つのプログラムを実行するそれぞれのテストケースをJMeterで作成します。JMeterについては前回ブログに使い方などを記載しておりますので、参考にしてください。※1〜20,000までのIDを発行して登録して1〜20,000までを発行しおわった後に更新するテストケースを作成します(。同時アクセス100で200回処理(計:20,000アクセス)をさせました結果を表示します。注目する箇所は「Throughput」部分です。予想ではプロシージャの方が処理が遅いと思っていましたが、展開版の方が時間が処理能力がよくありませんでした。以前のプロジェクトで複雑な処理をしたプロシージャがあり、負荷テストをした際にそのプロシージャの実行に時間がかかっておりました。対応として今回の検証のようにPHPで展開したものを新たに用意して両方の負荷テストしました。その際にはPHPで展開して実装した方が2倍くらいの処理能力が向上しました。その経緯があったので展開版の方が処理能力がいいと思っておりました。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。