【SAPが動画で学べる!】YouTubeチャンネル開設しました ▶ SAPラボチャンネルはコチラ

【SAP基礎】ST05を使用したSQLトレースについて解説

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退しSAPの後進育成と啓蒙活動に従事中!
若者に負けぬようX(旧Twitter)も奮闘中。

この記事を読むメリット
  • SQLトレースに関する知識が体系的に理解できます
  • ST05を使ったSQLトレースの実行方法が習得できます

T-CODE:ST05は、SQL・ロック・RFC などのトレース機能を持ちますが、その中でよく使われるのがSQLトレースです。SQLトレースは、ABAPプログラムがデータベースへ送ったSQL(検索や更新の命令)を、そのまま記録して見比べられる機能です。画面が遅い、ジョブが重いといった性能調査に強いのはもちろんですが、「このトランザクションはどのテーブルを読んでいるのか/更新しているのか」を確認したいときにも、とても有効です。

レイナ

プログラムで実行されているSQLが確認できるんですね!

博士

その通りじゃ。
どんなデータを抽出してきているのか・レスポンスが悪いのはなぜかを調査する時に使えるぞい!

本記事では、SQLトレースに関する概要をおさえつつ、ST05を使った実行方法を実務視点で整理していますので、ぜひご参考ください!

SAPフリーランスバンク SAPフリーランスバンク
  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
CO

【機械部品製造業向けSAP導入(CO)】東京都/要件定義・設計

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
機械部品製造業を展開する企業において...
COMMPPSD

【製造・流通/S/4HANA新規導入(全モジュール)】23区内(ハイブリッド)/基本設計フェーズ推進

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFI

【IT・製造/S/4HANA稼働後支援(FI/CO)】品川区(リモート併用)/障害対応・保守支援

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAの本番稼働を迎えた直後の、非常...
MMSD

【商社・製造/S/4HANA新規導入(SD/MM)】東京・関西(ハイブリッド)/仕入先直送スキーム構築

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFIMMPPSD

【IT・製造/S/4HANA新規導入(ABAP)】東京駅(ハイブリッド)/移行ツール設計・開発

月額単価
1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京駅(ハイブリッド)/購買管理基本設計・アドオン検討

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京・関西(リモート併用)/購買管理コンサルティング

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大手企業におけるS/4HANAの新規導入プロ...
FI

【エネルギー業界/S/4HANA導入支援(連結会計)】都内・リモート/連結決算プロセスのシステム化推進

月額単価
1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計, その他
作業内容:
エネルギー業界の大手企業における、S/4...
CO

【製造・管理会計/SAP COコンサル(CO-PC/PA)】都内・関西・リモート/要件定義およびCRP推進

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義
作業内容:
SAP S/4HANAの導入または刷新プロジェク...
COFIMMPPSD

【IT・コンサル/GROW with SAP(Public Edition)】都内・リモート/クラウドネイティブな設計・開発

月額単価
1,700,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
最新のクラウドERPソリューションである...
この記事のポイント

概要

SQLトレースとは、ABAPプログラムやトランザクションが実際にデータベースへ投げたSQL命令を、その発行順・内容・所要時間とともに記録する仕組みです。SQLトレースはDBを操作する最終形のSQLを残し、かつどれだけ時間がかかり、何行読み書きし、どのテーブルやインデックスに触れたかまで可視化します。つまり、画面やジョブの“遅さ/重さ”をDB視点で説明できる材料になります。

ST05では、次の観点でトレースを採取・分析できます。

ST05の特徴

  • 対象の絞り込み:ユーザ単位でトレースをオンにし、必要な操作だけ短時間採取できます。
  • SQL明細の確認:最終SQL本文、実行時間(Duration)、取得・スキャン行数(Rows)、アクセス先(Table)、操作種別(SELECT/INSERT/UPDATE/DELETE)、アクセス種別(インデックスアクセスかテーブルスキャンか、バッファ経由か など)などが見られます。
  • フィルタリング:更新系だけ、特定テーブルだけ、といった条件絞り込みでノイズを削れます。
  • 深掘りへの連携:長時間の傾向はSQLM、ABAP側の処理時間はST12/SATと組み合わせて、アプリ側かDB側かの切り分けを進められます。

SQLトレースの実行方法

SQLトレースの大まかな手順は以下の通りです。

SQLトレースの手順
  1. トレース対象の処理画面を準備する
  2. ST05を開き、トレース開始ボタンを押下する
  3. トレース対象の処理を実行する
  4. ST05の画面で、トレース終了ボタンを押下する
  5. トレース内容の照会ボタンを押下する
博士

それでは、実際の画面イメージを使って説明していくぞい

実機でのSQLトレース方法の解説

まずは、調査したい対象の処理を別ウィンドウで準備します。
今回は、デモ用で用意したABAPプログラム「ZTEST_OKD02」をT-CODE:SE38の実行画面で用意しています。
このプログラムは、選択画面で会社コードや会計期間等を選択し、その条件に応じた会計伝票明細をテーブルから抽出するという簡単なテストプログラムです。

次に、T-CODE:ST05を新しいウィンドウで開き、「SQLトレース」にチェックをつけた状態(下図の①)で「トレース開始」ボタンを押下(下図の②)します。現在ログオン中のアプリケーションサーバ上で、対象ユーザが発行するSQLがトレース対象になります。

事前に開いておいた調査したい対象の画面に戻り、実行ボタンを押下します。(下図の③)

SAP ST05 SQLトレース手順1
ST05-SQLトレース手順1

プログラムの処理が完了した後、ST05の画面に戻り「トレース終了」ボタンを押下(下図の④)し、続けて「トレース照会」画面を押下(下図の⑤)します。これにより、SQLトレースの記録が終了し、トレース照会の選択画面に遷移します。

SAP ST05-SQLトレース手順2
ST05-SQLトレース手順2

トレース結果の照会と分析

選択画面では、直近でトレースした開始日時と終了日時や実行ユーザIDがデフォルトで入ってきます。
問題なければそのまま実行ボタンを押下します。

SAP ST05-SQLトレース手順3
ST05-SQLトレース手順3

出力された結果はALV形式でフィルターや並び替えができますが、Excelなどのローカルファイルに出力することもできます。

主な表示項目
  • 開始時間
  • 実行時間:「Duration」列を見れば、どのSQLが遅いか一目で分かる
  • CPU使用時間
  • メモリ消費量
  • レコード数:「Records」列で、無駄に大量データを読んでいないか確認できる
  • プログラム名
  • オブジェクト名:テーブル名だけでなく、ビューや一部のシステムオブジェクトも含まれる
  • ステートメント:SQLの実行文を確認できる
SAP ST05-SQLトレース手順4
ST05-SQLトレース手順4


レコードをダブルクリックすると、詳細画面に遷移します。上記画像の様に、SQL文の場合はSQL文の詳細とパラメータ値が表示されます。また、レコードを選択した状態で「ABAP Call Location」のアイコンを押下すると、対象のABAPコードに遷移することができます。

今回の例では、何回も同じSELECT文が呼び出されていることがわかると思います。
これは、ABAPのループの中で毎回SELECTを発行する実装方法をとっているために起こる典型的な例です。本来は、結合(JOIN)や “FOR ALL ENTRIES” を使って、一度のSQLでまとめて取得することで、同じSQLを何十回・何百回とDBに投げる「多重実行」を避けることができます。

SAP ST05-SQLトレース_例1
ST05-SQLトレース_例1
博士

他にも長時間実行の典型例を紹介するぞい!

もっと詳しく💡

次のSQLトレース結果では、SELECT文が1回だけ実行されていますが、「実行時間(Duration)」や「レコード数(Record)」などから処理が比較的重くなっていることがわかります(HANAの性能上この程度では問題ありませんが)。
SQLの詳細を見てみると、WHERE文でまったく絞り込みをかけずに会計伝票明細(BSEG)をSELECTしていることがわかります。このような条件不足によるテーブルのフルスキャンは、もちろん障害の原因になりますので、注意が必要です。
特に、会社コード(BUKRS)や年度(GJAHR)、転記日付(BUDAT)といった、インデックスが張られている項目で絞り込むことが重要です。

SAP ST05-SQLトレース_例2
SAP ST05-SQLトレース_例2

注意点

T-CODE:ST05のSQLトレースは、あくまでDBに投げられたSQLを記録するものであり、LOOP・SORT・集計などのABAP側の処理は記録することができません。
つまり、「大量データをABAPに持ってきてゴリゴリ処理している」ようなポイントは、ST05単体では直接検知できないというわけです。

そのため、T-CODE:SATやT-CODE:ST12でABAPランタイムを測り、どのサブルーチン/命令が時間を消費しているかを確認するなど、複合的な調査が必要になります。ST12であれば、ABAPトレースとSQLトレースをまとめて取得できるため、ABAP側とDB側のどちらがボトルネックなのかを切り分けやすくなります。

まとめ

T-CODE:ST05は、パフォーマンス調査だけでなく、「この処理はどのテーブルにアクセスしているのか」を確認するための便利なツールでもあります。使い方はシンプルで、「対象をしぼって短くトレース→結果を並べ替えて重い処理や関係するテーブルを特定」という流れを守れば、誰でも十分活用できます。
本記事が、日々の業務に役立てていただければ幸いです。最後まで読んでいただきありがとうございました!

博士

SAP運用保守でよく使うトランザクションコードを以下の記事にまとめた記事が参考になるぞい!

  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
CO

【機械部品製造業向けSAP導入(CO)】東京都/要件定義・設計

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
機械部品製造業を展開する企業において...
COMMPPSD

【製造・流通/S/4HANA新規導入(全モジュール)】23区内(ハイブリッド)/基本設計フェーズ推進

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFI

【IT・製造/S/4HANA稼働後支援(FI/CO)】品川区(リモート併用)/障害対応・保守支援

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAの本番稼働を迎えた直後の、非常...
MMSD

【商社・製造/S/4HANA新規導入(SD/MM)】東京・関西(ハイブリッド)/仕入先直送スキーム構築

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFIMMPPSD

【IT・製造/S/4HANA新規導入(ABAP)】東京駅(ハイブリッド)/移行ツール設計・開発

月額単価
1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京駅(ハイブリッド)/購買管理基本設計・アドオン検討

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京・関西(リモート併用)/購買管理コンサルティング

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大手企業におけるS/4HANAの新規導入プロ...
FI

【エネルギー業界/S/4HANA導入支援(連結会計)】都内・リモート/連結決算プロセスのシステム化推進

月額単価
1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計, その他
作業内容:
エネルギー業界の大手企業における、S/4...
CO

【製造・管理会計/SAP COコンサル(CO-PC/PA)】都内・関西・リモート/要件定義およびCRP推進

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義
作業内容:
SAP S/4HANAの導入または刷新プロジェク...
COFIMMPPSD

【IT・コンサル/GROW with SAP(Public Edition)】都内・リモート/クラウドネイティブな設計・開発

月額単価
1,700,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
最新のクラウドERPソリューションである...

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

SAPエンジニア(SD/MM/ABAP)

大学卒業後、大手日用品メーカーに社内SEとして入社し、SAP S4HANA導入プロジェクトに参画。主にSD/MMモジュールについて、知見を深めて参りました。
その後、SAPを極めたいという思いからSIerに転職。
大手機械メーカーへのSAP導入プロジェクトに参画し、SD/MM/COのアプリ側を経験しつつ、現在はロジ周りのAdd-on設計・開発をメインで担当しています。

プロジェクトを通して学んだことを発信し、言語やベンダーにより閉じられたSAPの世界を「パッケージ」として明るく開けたものにする一助になれば嬉しいです。

この記事のポイント