ES/1 Shelty Tips

#03 SQLバインド変数が表示できるようになりました

作成者: IIM 古澤 (ES/1 Shelty担当)|Mar 10, 2023 6:30:00 AM

こんにちは。ES/1 Shelty担当の古澤です。

 

V2.3.0へのアップデートで、トランザクションの中で実行されたSQLのバインド変数を表示できるようになりました。

問題発生時の迅速な原因調査やチューニングのための調査を支援します。

 

 

SQLバインド変数とは?

SQLバインド変数とは、SQLの中で使用される変数を指します。

バインド変数として定義することでSQLが再利用できるようになるため、処理効率がアップします。

 

バインド変数の中身は、アプリケーションの処理内容に依存しますが、ユーザーIDや店舗番号、電話番号、処理の開始時刻などの情報が含まれます。

 

 

調べるのが面倒なSQLバインド変数がすぐ分かる!

一般的に、バインド変数の調査は手間と時間がかかる上に、一定の技術的な知識が必要です。


例えば、レスポンスが遅いトランザクションが発生したとします。
調査の結果、SQL実行時間が長いことはわかりましたが、バインド変数が実際にどの値になっていたかは処理ごとに異なる場合があり、簡単には確認することができません。

 

バインド変数の中身を知るためには膨大なアプリケーションログや、データベースの統計情報を調査する必要があります。
時には、複数のログを組み合わせなければならないこともあります。
また、ベンダーへの調査依頼が必要になることもあり、その場合はさらに解決までに時間を要することになります。


ES/1 Sheltyでは、オプションをONにするだけで、バインド変数の中身がすぐに誰でも確認できるため、面倒な可視化業務にかかる時間を短縮できます。

 

 

 

 

 

 

 

 

SQL逆引き機能も検討中

今後のアップデート(時期未定)では、SQLバインド変数に含まれる値で実行されたSQLの実行時間やSQL文、実行トランザクションを検索できるようなSQL逆引き機能も検討中です。

 

これにより、たとえば、お客様から「処理が遅い」とクレームがあった時、SQLバインド変数に含まれるユーザーIDを検索し、影響範囲の確認やチューニングが必要なSQLの特定をスムーズにできるようになります。

 

多くのAPMツールではバインド値を表示できないため、ES/1 Sheltyで可視化してみてはいかがでしょうか。