Friday is awesome

SAPについて個人的なメモをまとめたブログです

MENU

【SAP Tips】パフォーマンス問題が起きたら

SAPシステムを使用していて稼働からしばらく経つとパフォーマンスに問題のあるプログラムが出てくることはよくあるかと思います。企業の大規模データを扱うのでパフォーマンス問題はどのプロジェクトでも避けては通れない道ですね。

ST12 プログラム実行結果を詳細に解析できます。ABAPの命令文単位で処理時間を取れますし、SQLに絞って処理時間を取ることもできます。また、SQLのSelectであれば処理時間とともに1件あたりの時間も分かります。

そのため、パフォーマンスチューニングするとなったら、まずはST12で実行してみて、どこがボトルネックになっているか確認することが重要です。

以前の仕事で遅い処理があり調べたところ、販売組織と伝票番号をキーに持つテーブルの検索で時間がかかっていた。Selectのwhere句には、伝票番号しか指定していなかった(その処理では業務上それで問題なかった)。販売組織も、抽出条件に入れると処理時間は大幅に改善された。

場合によってはキー項目を検索条件に指定できない場合もあるかと思います。どうしても、パフォーマンスが遅いならプライマリキーではない二次索引を作成することも手段になるかもしれません。

また、件数の多いテーブル同士をInner Joinしていて処理時間がかかっているケースもありました。単一テーブルを先に検索して、その結果で二番目のテーブルを検索することで処理時間は大幅に改善しました。

基本的な知識だけでも、結構改善することができたので、稼働当初なんかはパフォーマンス意識していないロジックもたくさんあるなと感じています。どれだけマシンスペックが上がってもシステムに負荷をかけないアプリケーションを作ることが重要です。

運用保守担当のみなさま、がんばりましょう。