トップ > 技術コラムNews > SAP技術情報 > S4 HANAに移行したのに処理速度が遅い原因は「NonCode Pushdown」かもしれない

更新日 

S4 HANAに移行したのに処理速度が遅い原因は「NonCode Pushdown」かもしれない

—————————————-

【コラム監修者 プロフィール】

クラウドコンサルティング代表取締役 岸仲篤史

 

新卒でSAPジャパン株式会社に入社。

SAPジャパン在籍中にCOコンサルとして従事したことで、会計コンサルの面白さに目覚め、

大和証券SMBC株式会社 投資銀行部門、新日本有限責任監査法人、アビームコンサルティングにて、

一貫して約10年間、会計金融畑のプロフェッショナルファームにてキャリアを積む。

その後、2017年クラウドコンサルティング株式会社を設立し、SAPフリーランス向けSAP free lanceJobsを運営し、コラムの監修を手掛ける。

 

Facebook

https://www.facebook.com/atsushi.kishinaka#

 

X

https://x.com/free_sap_consul

 

—————————————-

 

 

 

はじめに

SAP S/4HANAに移行を終えた後でも、特定の処理が遅い、思ったほどパフォーマンスが向上しないといった問題が発生することがあります。

その原因の一つとして考えられるのが「Non-Code Pushdown(ノンコードプッシュダウン)」です。

本記事では、S/4HANA環境におけるNon-Code PushdownとCode Pushdownの違いを明確にし、S/4HANAのパフォーマンスを最大限に引き出すための実装について紹介します。

 

 

 

1.S/4HANAに移行したのに処理速度が遅い原因

SAP S/4HANAへ移行すると、インメモリデータベース(SAP HANA)の高速処理が活用できるため、システム全体のパフォーマンス向上を期待しますよね。

しかし、実際にS/4HANAへ移行した後、「処理速度が思ったほど改善されない」「特定のトランザクションが遅い」といった問題に直面するケースがあります。

 

この原因の一つとして考えられるのが、「Non-Code Pushdown(ノンコードプッシュダウン)」です。

これは、アプリケーションレイヤー(ABAPプログラム)側でデータ処理を行ってしまい、SAP HANAのデータ処理能力を十分に活かせていない状態を指します。

従来のSAP ERPでは、ABAPサーバー(アプリケーションレイヤー)でデータ処理を行うのが一般的でした。

しかし、S/4HANAではデータベースレイヤー(SAP HANA)で処理を行う「Code Pushdown(コードプッシュダウン)」が推奨されています。

 

もしS/4HANAへ移行した後も、従来のABAPプログラムをそのまま使用し、データ処理をアプリケーション層で行っている場合、Non-Code Pushdownによるパフォーマンス低下が発生する可能性があります。

 

 

 

2.Code PushdownとNon-Code Pushdown

Code PushdownとNon-Code Pushdownの違いは、データ処理の実行場所がアプリケーション層(ABAPサーバー)か、データベース層(SAP HANA)かという点にあります。

 

 

2-1.Non-Code Pushdown(ノンコードプッシュダウン)とは?

Non-Code Pushdownとは、ABAPプログラム内でデータ処理を行う実装方法です。

従来のSAP ERPでは、データをデータベースから取得し、その後ABAPプログラム内で集計やフィルタリング、計算などの処理を実行する方法が一般的でした。

しかし、すべてのデータを一度ABAPサーバーに取得し、そこでフィルタリングや集計を行う場合、アプリケーション層に過剰な負荷がかかります。

一方で、DBへの負荷はあまりかかりません。

つまりSAP HANAのインメモリ処理の利点を十分に活かせず、パフォーマンスが低下してしまう可能性があるのです。

 

 

2-2.Code Pushdown(コードプッシュダウン)とは?

これに対してCode Pushdownとは、データ処理の大部分をSAP HANAのデータベース層で実行するように最適化する手法です。

データ転送量を削減し、HANAの並列処理やカラムストアの特性を活用して、高速なデータ処理を実現できます。

 

Code Pushdownを実装する方法として、以下のような技術が活用されます。

 

・CDS(Core Data Services)ビュー: データベースレイヤーで複雑な集計や結合を行う

・AMDP(ABAP Managed Database Procedures): SQLScriptを使用し、HANA側でロジックを処理

・SQLの最適化(Open SQLの活用): WHERE句やJOINを適切に利用し、不要なデータ転送を減らす

 

大量の受注データを処理する場合ならば、ABAPでデータを取得する前に、CDSビューを使用して事前にフィルタリングや集計をHANA上で実行します。

こうすることで、ABAPサーバーの負荷を大幅に軽減できます。

 

つまり、S/4HANAの本来の高速処理能力を活かすためには、コードの書き方を見直し、Code Pushdownを適用することが不可欠なのです。

将来的にS/4(つまりSAP HANA)にシステム構成を移行しても、同じ設計(Non-Code Pushdown)のままでは処理速度が改善される可能性は低いのです。

 

 

 

3.Code Pushdownで実装するとどのくらい速くなるのか

Code Pushdownを適用することで、処理時間が大幅に短縮されることが確認されています。

ここでは具体的なパフォーマンス改善の事例を紹介します。

 

 

3-1.事例①: 受注データの集計処理

ある企業では、SAP ERP(ECC)からS/4HANAへ移行したものの、受注データの集計処理が依然として遅いという課題がありました。

従来のABAPプログラムでは、全件データをSELECTで取得し、ABAPサーバー側でフィルタリングや集計を実施していました。

このプログラムをCDSビューを活用したCode Pushdownに変更したところ、処理時間が30秒から2秒に短縮されました。

この大幅な改善は、不要なデータ転送を削減し、SAP HANAの並列処理を活用した結果です。

 

 

3-2.事例②: 請求データのフィルタリング処理

別の企業では、請求データの検索処理において、ABAPサーバー側で大量のデータを取得した後、フィルタリングを実施していました。

この処理を、Open SQLのWHERE句を適切に活用し、データ取得時点で必要なデータのみを選別するように修正したところ、処理時間が10秒から0.5秒に短縮されました。

 

 

3-3.事例③: AMDPを活用した大規模データ処理

財務データの大規模な計算処理をABAPで実装していた企業が、SAP HANAのSQLScriptを活用したAMDPに切り替えたところ、従来のABAPプログラムの10倍以上のパフォーマンス向上を実現しました。

特に、数百万件以上のデータを扱う処理では、Code Pushdownの効果が顕著に現れます。

 

 

 

まとめ

S/4HANAへ移行したにもかかわらず、処理速度が遅い場合、その原因の一つとして「Non-Code Pushdown」が考えられます。

一方、Code Pushdownを適用することで、SAP HANAのインメモリ処理、カラムストアの最適化、並列処理の活用が可能になり、大幅なパフォーマンス改善が期待できます。

SAPの最新環境を最大限に活かすためには、単なるS/4HANAへの移行だけでなく、ABAPプログラムの最適化を進めることが不可欠です。

Code Pushdownの技術を習得し、より高性能なSAPシステムの構築を目指していきましょう。

LINEで送る
Pocket

SAP案件紹介や独立前相談

ほとんどのSAPコンサルタントの方は、独立すると、まずは当社へご登録いただいております。

60秒で無料登録

案件情報やSAP技術情報を
気軽に受け取る

メルマガ登録

つの情報を送るだけで案件紹介へ

    御氏名
    メールアドレス
    電話番号
    生年月日

    つの情報を送るだけで案件紹介へ

      御氏名
      メールアドレス
      電話番号
      生年月日