コンテンツフレーム起動

パフォーマンスに関する注記 文書を SAP ライブラリストラクチャに組み込む

ABAP プログラムのパフォーマンスは、データベースアクセスの効率性に大きく依存します。そのため、SQL 命令は詳細に分析する価値があります。このための手助けとして、パフォーマンストレースおよび 実行時間分析ツール (ABAP ワークベンチのテストメニュー) を使用します。特に、パフォーマンストレース SQL トレース では、オープン SQL 命令のどの部分がどこで処理され、その処理にどのくらい時間がかかるかが示されます。

SQL 命令が ABAP プログラムの実行時間に影響する方法を理解するには、基礎となるシステムアーキテクチャを理解する必要があります。アプリケーションサーバワークプロセスは、R/3 システムの実行中にはユーザ ( クライアント) としてデータベースシステム ( サーバ) にログオンされます。データベース管理システム (DBMS) は、ユーザとデータ間の接続を形成します。 

DBMS アーキテクチャ

DBMS の標準構造は以下のとおりです。

        データベースワークプロセスは、データベースクライアントが呼び出せるサービスを提供します。

        接続の確立、データベーステーブルの変更、データベースエントリのロック、アーカイブなど、異なるタスクには異なるデータベースサービスがあります。

        DBMS キャッシュや命令キャッシュなど他のリソースを含む大規模な共有メモリ領域と REDO 情報があります。

        データベースファイルはハードディスクに格納され、ファイルシステムによって管理されます。

このグラフィックは添付のテキストに説明されています

このアーキテクチャ内に、パフォーマンスに関して重要な 4 つのポイントがあります。

        物理入力/ 出力 (I/O)

データベースファイルの読込および書込は最大のボトルネックです。適切に設定されたシステムの目印となるのがI/O の速度です。

        データベースキャッシュに使用されたメモリ

        データベースがインストールされたホスト上の CPU 使用率 

対照型マルチプロセッサシステムでは、これは関係ありません。

        ネットワーク通信

少量のデータでは重要ではありませんが、大量のデータがかかわる場合はボトルネックになります。

オプティマイザ

各データベースシステムでは、SQL 命令の実行計画を登録するためのオプティマイザが使用されます ( たとえば、索引を使用するかテーブルスキャンを使用するかを設定するため) 。オプティマイザには 2 種類あります。

ルールベース

ルールベースオプティマイザは、SQL 命令の構造 ( 主に値を持たない SELECT および WHERE ) とテーブル索引を分析します。命令の実行に使用するメソッドを見つけるためにアルゴリズムを使用します。

コストベース

コストベースオプティマイザは上記の手順を使用しますが、WHERE 句およびテーブル統計の一部の値も分析します。統計には、項目の上位値と下位値、またはテーブル内のデータ分布を含むヒストグラムが含まれます。コストベースオプティマイザはテーブルに関する情報をより多く使用するため、通常はデータベースアクセスが速くなります。短所は、統計を定期的に更新しなければならない点です。

用途

リリース 7.1 以前 ORACLE データベースではルールベースオプティマイザを使用します。リリース 7.2 (R/3 リリース 4.0A) からは、コストベースオプティマイザを使用します。その他のデータベースシステムはすべてコストベースオプティマイザを使用します。

効率的なオープン SQL プログラムのためのルール

上記のアーキテクチャにもとづいた、ABAP プログラムでのデータベースアクセスをより効率的にするための 5 つのルールがあります。これらのルールは特に以下のデータベースシステムに適用されます。

        ORACLE

        INFORMIX

        ADABAS

        DB2/400 (EBCDIC コードページを使用)

        Microsoft SQL Server

以下のデータベースシステムでは、ルールは一部またはまったく適用されません。

        DB2/6000

        DB2/MVS

        ORACLE Parallel Server (OPS)

5 つのルールの説明は、以下のセクションにあります。

結果セットを小さく保つ

転送するデータ量を最小限にする

データ転送数を最小限にする

検索オーバーヘッドを最小限にする

データベース負荷を軽減する

 

 

 

 

コンテンツフレーム終了