HANAにおけるABAP開発の理解
3. HANAにおけるABAP開発の理解
3. HANAにおけるABAP開発の理解
- Code-Pushdown
- ABAP新オブジェクト
- HANA化パフォーマンスのゴールデンルール
Code-Pushdown
よくある構成として、SAPのアプリケーションをインストールするサーバー(APサーバー)と、データを保管するデータベースのサーバー(DBサーバー)を分けます。
ABAPの処理は、APサーバーで実行される為、データを処理するにはDBサーバーにSQLで問い合わせをしてデータを転送してくる必要があります。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/5e0c2bda7d17b4a29defe661956423b9.png)
ABAPの処理において、このデータ転送が処理速度に非常に大きく影響します。例えば、大量データの転送や多数回の問い合わせを行うと、非常に時間が掛かったり、最悪は重くて処理できなくなってしまいます。
⇒そこで、処理(コード)をデータベース側に寄せ(プッシュダウン)ある程度データベースサーバー側で処理を行い、結果だけをかえすことで転送量や転送回数が減り高速化が図れます。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/3a4cb7034209d204d977bd2e84f72188.png)
ABAP新プロジェクト
Code Push Downを採用するABAPの新しいオブジェクトが出てきました。いずれも、データベース側で作成します。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/46694d29fff8737d6f85bd4f629e4f33.png)
オブジェクト定義のアプローチは以下の2パターンが存在します。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/32b5f7fb01fa27bb848bc5f8d8b465f5.png)
CDSビュー(Core Data Service View)
![](https://kanda-it-school-kensyu.com/wp-content/uploads/3cfed5b1c0845a8ec405b5667ea97a1f.png)
※サンプルコード
![](https://kanda-it-school-kensyu.com/wp-content/uploads/17fbd5abb68c1991a3c5155d02aa4111.png)
従来でもOpen SQLを用いて、データベース側で処理をさせて結果を返すようなやり方はありました。
たとえば、JOINや集計関数などを用いるなどがそれにあたります。
では、CDSビューを利用する方針として ABAPでOpen SQLを廃止するのかというと、SAPは、競合ではなく使い分けを行いましょうとしています。
Open SQLとCDSビューの使い分け
<Open SQL>
1回のみ使用するクエリの場合や、Open SQL特有機能(For All Entries等)を用いる場合に使用します。
<CDS ビュー>
再利用する場合や、CDS ビュー特有機能(UNION,UNION ALL等)を用いる場合に使用します。
HANA化パフォーマンスのゴールデンルール
コードプッシュダウンを利用するとしても、ABAP側でゴールデンルールの徹底は必須となります。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/96b172301c7d0f26841c9c0f7d890c85.png)