SAP IQ による SAP ニアラインストレージ(NLS)のパフォーマンスを向上させる
2023-12-18 15:57:19 Author: blogs.sap.com(查看原文) 阅读量:4 收藏

このブログは、2022 年 7 月 15 日に SAP ジャパン公式ブログに掲載されたものを SAP ジャパン公式ブログ閉鎖に伴い転載したものです。


このブログは、Roland Kramer が執筆した ブログ「Increasing the SAP-NLS Performance」(2022 年 10 月 2 日更新版)の抄訳です。

オリジナルは更新されている可能性がありますのでご確認ください。



SAP HANA Smart Data Access (SDA) のリリースにより、特に SAP HANA と SAP IQ 間で、データのプロビジョニングプロセスが最適化できるようになりましたが、ABAP や SAP HANA バックエンドでも利用するためにはいくつか追加のパラメーターを使用する必要があります。

SAP HANA と SAP IQ 間の SDA の実装は – SAP ファーストガイダンス – SAP IQ による SAP BW、SAP BW/4HANA のニアラインストレージ(NLS)ソリューション (英語)で解説されています。

この実装が最初に必須となるタスクです。

SAP BW、SAP BW/4HANA の概要についてはこちらのブログを参照してください – 全ての SAP BW、SAP BW4/HANA リリースのSAP ニアラインストレージ(NLS)ソリューション – SAP IQ


バージョン SP – Level  現行 SP ( 05/2022 )  メインストリームメンテナンス
SAP BW 7.40 26  SAPKW74026  2020 末まで
SAP BW 7.50 24  SAPK-75022INSAPBW  2027 末まで
SAP BW/4 1.0 20  SAPK-10020INDW4CORE  2021 末まで
SAP BW/4 2.0 12  SAPK-20010INDW4CORE  2024 末まで
SAP BW/4 2021 02  SAPK-30001INDW4CORE  2040 年までコミット
コンポーネント  カテゴリー
BW-WHM-DST-ARC BW/4 のみ  BW4-DM-DTO  プログラムエラー
BW-SYS-DB-IQ オプショナル  BW-WHM-DST-DTP  サーチターム
BC-SYB-IQ オプショナル  BW-WHM-DBA-ADSO  アーカイブ、ニアライン、 IQ

SAP Launchpad – https://launchpad.support.sap.com/#/mynotes?tab=Search を使用することで、SAP システムと SP レベルに必要な SAP Note を検索することができます。


一般的な参考情報については、SAP IQ による SAP ニアラインストレージ(NLS)のパフォーマンスに関する以下の Knowledge Base の記事を参照してください。

アーカイブへの書き込みのパフォーマンス – このブログ後半の SAP ニアラインストレージ(NLS)のロードの並列化 も参考にしてください。

Note 2109015 – コピー、検証、削除フェーズの並列アーカイブリクエストの続行
Note 2371160 – FAQ : SAP IQ への SAP BW アーカイブのパフォーマンスに関する考慮事項
Note 2525213 – バッチインサートエントリーを表示する SAPIQDB_DIAG.log による SAP ニアラインストレージ(NLS)アーカイブのパフォーマンス


SAP IQ データベースの設定をチェックしてください (SAP IQ 16.1 SP04 以降に基づく)

Note 3017355 – SAP IQ 16.1 SP04 PLx – SAPIQDB.cfg 設定の修正
Note 311908 – SDA/ODBC 用の SAP IQ および HANA の設定
Note 2767466 – SAP IQ でクライアント接続タイムアウトを制御するオプション

  • SAP SQL Anywhere 17.0 データベースサーバー起動オプション
  • SAP IQ ページサイズ パラメーターガイドライン
  • SAP IQ カタログページサイズオプション
  • SAP IQ 起動オプションによるパフォーマンスオプション
  • SQL Anywhere インターフェースの追加設定:
    • -gss : このパラメーターで、カタログ(SAP SQL Anywhere)スレッドのカタログスタックサイズを設定します。全 64-bit UNIX プラットフォームでは、デフォルトは 最小= 1 MB、最大= 8 MBです。大きく複雑なクエリーを考慮して、この値は 8 MB に設定してください。
    • -iqtss : これは、バックグラウンドまたはメインサーバー接続スレッドをアシストするスレッドチームの一部としてのサーバー実行スレッドのスタックサイズを KB で指定します。デフォルトの値は、64 bit プラットフォームでは 512 KB ですが、非常に複雑なクエリーではエラーを返す可能性があります。このエラーはスタックの深さがこの制限に達していることを示しているため、この値を 2048 まで増やす必要があります。
    • SAP IQ は、以下の式を使用してサーバースレッドのスタックサイズを計算します : ( -gss + -iqtss)
    • -iqmc : これはメインバッファーキャッシュサイズを MB で指定します。8192 に設定する必要があります。

最後に、SAP BW からのアーカイブ中に、最適化されたパーティションを作成するための新しい SAP ニアラインストレージ(NLS)IQ の dbspace 指向パーティショニングを実装する場合には、以下の SAP Note を参照してください。

Note 2190504 –SAP BW ニアラインストレージ(NLS)IQ : dbspace 指向の新しいパーティショニングモード

SAP IQ の自動化されたインストレーションルーティンを使用した場合、これらの設定は自動的に計算されます。

SAP IQ のための容易なインストーラー - 「Q」 のブログを参照してください。

ブログ – SAP BW on HANA および SAP BW/4HANA における SAP IQ によるニアラインストレージ(NLS)のチューニング(英語)


現在、SAP HANA サーバー上で以下の SDA パラメーター を変更することができます。

  • remote_objects_tree_max_size
  • semi_join_execution_strategies
  • semi_join_virtual_table_threshold
  • virtual_table_format
  • join_relocation
  • fda_enabled
  • enable_remote_cache
  • enable_remote_source_capability
  • default_connections_pool_max_size

SAP HANA Studio で SQL インターフェースを使用して、リモート接続タイムアウトの設定も可能です。

Note 2578523 – SAP HANA スマートデータアクセス – 同時 SESSIONS_PER_USER 制限を超過

ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'system') set ('smart_data_access', 'remote_conn_idle_timeout') = '180' with reconfigure;

Note 2184030 – SAP HANA SDA : 表示されるオブジェクト数を増やす方法

ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'system') SET ('smart_data_access', 'remote_objects_tree_max_size') = '5000' WITH RECONFIGURE;

SAP HANA では(全バージョン)、リモート DS で DML モードを 「readonly」 に設定する必要があります。


現在、SAP ABAP サーバーで以下のパラメーターを変更する必要があります。

  • rsdb/supports_fda_prot = 0
  • rsdb/max_blocking_factor = 50
  • rsdb/max_in_blocking_factor = 100 (as of SAP Kernel 7.49, previously 1024)
  • rsdb/prefer_join = 0
  • rsdb/prefer_union_all = 0
  • rsdb/prefer_in_itab_opt = 1
  • rsdb/prefer_join_with_fda = 1 (as of SAP Kernel 7.43)

Note 1987132 – SAP HANA : SELECT FOR ALL ENTRIES のパラメーター設定


Note 2130587 – SYB IQ : LOAD 文のパフォーマンス強化 (最新 ASE / IQ LibDBSL)
Note 2352696 – SAP HANA SDA 2.0マスタリリースノート (最新 SAP HANA 用 ODBC ドライバー)
Note 2445973 – SAP_IQNC 16.1 SP01 (ビルド 10531) のリリースノート情報 (最新 SAP IQ 用 ODBC ドライバー )

SAP HANA Smart Data Access(SDA)がリリースされたことで、アーカイブされたデータへのデータアクセスは最適化されています。SAP BW on HANA と SDA の使用に関する一般情報については、SAP BW on HANA Smart Data Access (SDA) (英語)のブログを参照してください。

特にナビゲーション属性の選択は、SAP HANA と SAP IQ と SDA をともに使用することをベースにしたクエリーの実行のため、semi-join または joint relocation の自動的な使用を考慮していることに注意してください。
詳細については、 SAP BW on HANA & HANA SDA – BEx クエリー実行(英語) と
Note 2156717 – NLS : ナビゲーション属性/階層ノード制限のあるクエリの実行に時間がかかる を参照してください。

さらに、以下の SAP ニアラインストレージ(NLS)と SDA 特定の SAP Note が適用されます。

Note 2100962 – FAQ : SAP BW ニアラインストレージ(NLS)/コールドストア ( SAP HANA SDA ) : クエリーパフォーマンス
Note 2165650 – FAQ : SAP BW ニアラインストレージ(NLS)/コールドストア ( SAP HANA SDA )
Note 2214892 – SAP BW HANA SDA : 仮想テーブルの統計を登録するためのプロセスタイプ
Note 2202052 – SAP HANA SDA による SAP BW ニアラインストレージ(NLS): インフォキューブでのクエリパフォーマンスの低下
Note 2283055 – 外部 SAP HANA ビュー: オブジェクト固有の SQL エンジン実行の強制


レポート RSDDB_INDEX_CREATE_MASS RSDDB_LOGINDEX_CREATE

Note 2194638 – レポート RSDDB_INDEX_CREATE_MASS : フラグ “skip_if_exists” に関係なく、無効な場合にインデックスを再生成する
Note 2379817 – SAP ニアラインストレージ(NLS)を含むデータストアオブジェクト (拡張) : 抽出時のエラー
Note 2607883 – SAP BW クエリーでの列ビューおよび計算シナリオエラーのチェック


レポート RSDA_DROP_TEMP_TABLES

Note 2708894 – SQP IQ からのテンポラリールックアップテーブルのクリーンアップレポート
Note 2198386 – SAP BW HANA SDA : オープン ODS ビューまたは SAP ニアラインストレージ(NLS)アーカイブの仮想テーブルのデータベース統計作成のパフォーマンス向上
Note 2288710 – BW HANA SDA : オープン ODS ビューの仮想テーブルのデータベース統計の登録
Note 2431673 – RSSDA_CREATE_TABLE_STAT でエラー “statistics cannot be found” が表示される



レポート RSSDA_CREATE_TABLE_STAT

これは、SAP HANA 仮想テーブルのデータベース統計の作成に使用することができます。

Note 1990181 – SAP BW SAP HANA SDA : オープン ODS ビューおよび SAP ニアラインストレージ (NLS) アーカイブの仮想テーブルのデータベース統計の登録

SAP HANA 仮想テーブルは、SDA の文脈で使用されます。実行にはかなり時間を要します。SAP HANA SP10 では、仮想テーブルで SYS.DATA_STATISTICS という名前のシステムビュー経由で新しい統計タイプ RECORD COUNT が利用可能です。
このビューは、カラムとして CREATE_TIME und LAST_REFRESH_TIME を提供します。


Note 2128579 – コピーフェーズ中の SAP IQ へのデータロードで 1 つのサーバーサイドスレッドのみが使用される
Note 2364354 – SIQ : ADSO およびロードストライピングのサポート
Note 2399003 – SIQ : ロードが失敗してエラー DBSQL_DUPLICATE_KEY_ERROR が表示される
Note 2420571 – SIQ : 重複キーを受け入れるバルク更新と削除/挿入のパフォーマンスの向上
Note 2520897 – ODP パッケージサイズおよびデータロードのパフォーマンス
Note 2902060 – DTO から SAP IQ へのデータロードを処理するために DBSL によって登録された一時ファイルが過度に大きい理由
Note 2941940 – SAP API のパフォーマンス問題 (データパッケージ、ワークプロセス、RFC 接続、パートナプロファイル) のトラブルシューティング

SAP Note 2128579コピーフェーズ中の SAP IQ へのデータロードで 1 つのサーバサイドスレッドのみが使用される では、SAP ニアラインストレージ(NLS)へのデータの書き込みの LOAD 文のパフォーマンスを向上する2つのパラメーターが紹介されています。

パラメーター LOAD_STRIPE_SIZE の設定でパラメーターの値を n > 1 にすることでロードを並列化します。
パラメーター LOAD_STRIPE_WITH SYBASE_IQ_BUFFER_SIZE で乗じられた並列度です。
パラメーター SYBASE_IQ_LOAD_DIR はデータベース接続レベル  (DBCO) で変更可能で、デフォルトでは SAP インスタンスのデータディレクトリーになっています。

大規模なデータをロードする計画がある場合、十分なスペースがあることを確認してください。
または他のディレクトリー/デバイスを指定してください。
少なくとも同時に実行されるデータアーカイブプロセスごとに 1 データパッケージ全データを保てるようファイルシステムに十分なスペースがあることを確認してください。
経験則から、割り当てスペースは、同時に実行されるコピーフェーズの最大数の 1.5 倍とデータパッケージの平均サイズを目安にしてください。
(最大データパッケージサイズはデータアーカイブプロセス内で設定できます。システムデフォルトは 2000 MBです。)

LOAD_STRIPE_WITH は、ファイルシステムや RAM など他のサーバーリソースに依存した SAP IQ サーバーで利用可能な物理 CPU 数まで増やすことができます。
いくつかの大きなオブジェクトを同時に unload することを計画する場合、値は一致で計算する必要があります。

利用可能な物理 CPU 数以上にはしないでください。

LOAD_STRIPE_SIZE=4; LOAD_STRIPE_WIDTH=4


影響を受けたディメンションテーブルの設定は、より最適な設定に変更する方が適しています。
これは、InfoCube 内のディメンションの「Provider-Specific」設定で行います。
デフォルトでは、これらのオプションは空になっています。
これはクエリーの定義と実行については個々の InfoObjects のデフォルト設定が適用されることを意味しています。

さらに、あらゆるディメンションテーブルの再編成、例えばトランザクション RSRV 経由などは、避けるべきです。
アプリケーションには全くメリットがないばかりでなく、むしろ SAP ニアラインストレージ(NLS)ソリューションへの F4 アクセスを破損させることになり、結果として誤ったF4 値になったり、パフォーマンスが低下するからです。

最適化された設定の例としては、以下のスクリーンを参考にしてください。詳細については、help.sap.com ページを参照してください。


Note 2001947 – SAP HANA 上の操作スイッチ
Note 2099102 – LOOKUP の SFAE 実装のパフォーマンス低下
Note 2129546 – ニアラインデータの時間特性での拡張枝刈り
Note 2156717 – SAP ニアラインストレージ(NLS): ナビゲーション属性/階層ノード制限のあるクエリの実行に時間がかかる

Wiki – プルーニングによる SAP BW のクエリーパフォーマンスの向上 (英語)

InfoCubes におけるクエリーのパフォーマンスは低くなります。
なぜならば、フィルター条件が「key-values」ではなく、「SID-based」フィルターとして SAP HANA データベースにプッシュされるからです。「SID-based」フィルターでは、このフィルターを実行するために SID-table を仮想テーブルに joinする必要があります。
この join により SQL 文の複雑性が増すことになり、フェデレートされたデータベース環境におけるクエリーの最適化がより困難になります。

Note 2231332 – InfoProvider レベルでの SAP ニアラインストレージ(NLS)のクエリ最適化の制御

この note で、クエリー最適化をオン(デフォルト)にするかオフにするかの Data Archiving Process (DAP) メンテナンスの 「Near-line Storage」 タブにチェックボックスを追加します。
設定を有効にするには、DAP をアクティベートする必要があります。
最適化がオンになっているにも関わらず、クエリー最適化が設定されていない、あるいはニアライン接続で利用できない場合、クエリーアクセスは、標準ニアラインインターフェース経由の Near Line Provider 実装を利用して、Virtual Provider インターフェース経由で非最適化の実装を利用します。
SDA がニアライン接続用に設定されている場合も HANA 仮想テーブルの名前が表示されます。



文章来源: https://blogs.sap.com/2023/12/18/sap-iq-%e3%81%ab%e3%82%88%e3%82%8b-sap-%e3%83%8b%e3%82%a2%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b8%ef%bc%88nls%ef%bc%89%e3%81%ae%e3%83%91%e3%83%95%e3%82%a9%e3%83%bc/
如有侵权请联系:admin#unsafe.sh