このレッスンでは、SAP HANA で利用可能なさまざまなトレースツールを有効化および設定する方法について説明します。

さまざまなトレースで、データベースシステムのアクションに関する詳細情報を生成することができます。SAP HANA コックピットのDatabase Explorerで、ほとんどのトレースを有効化および設定できます。図 "トレース設定" は、テナントデータベースのTrace Configurationタブを開いて選択する方法の例を示しています。トレースごとに異なる設定オプションを使用できます。
注記
トレースを設定するには、システム権限 TRACE ADMIN が必要です。カーネルプロファイラを設定するには、SAP_INTERNAL_HANA_SUPPORT 標準ロールが必要です。
トレース概要
以下のトレースを使用することができます。
データベーストレース (デフォルト: 有効)
データベーストレースは常に有効になっています。つまり、エラー状況に関する情報が常に記録されます。ただし、特定の問題またはコンポーネントをより詳細に分析するには、特定のトレースコンポーネントをデフォルト値よりも高いトレースレベルに設定する必要がある場合があります。たとえば、バックアップトレースコンポーネントではバックアップ操作に関する情報が記録され、権限コンポーネントでは権限操作に関する情報が記録されます。
ヒント
以下の SAP ノートには、トレースコンポーネントとそれらの各種ユースケースに関する情報が記載されています。
SAP ノート 2380176 - FAQ: SAP HANA データベーストレース (FAQ: SAP HANA Database Trace)
トレースコンポーネントがすべてのサービスで使用可能な場合、すべてのサービスに対してトレースレベルを一度に設定することができます。特定のサービスに対して、コンポーネントのトレースレベルを個別に設定することもできます。サービスレベルで設定されたコンポーネントのトレースレベルは、すべてのサービスに対して設定されたトレースレベルよりも優先されます。一部のコンポーネントは特定のサービスでのみ利用可能であるため、グローバルに変更することはできません。
データベーストレースコンポーネントのトレースレベルは、SAP HANA データベースエクスプローラまたは SAP HANA コックピットで設定できます。または、global.ini 設定ファイル (すべてのサービスの場合) または indexserver.ini などのサービス固有のファイルの trace セクションにあるパラメータを変更することもできます。個々のパラメータはトレースコンポーネントに対応し、パラメータ値はトレースレベルです。
トレースレベルが高いほど、トレースによって記録された情報がより詳細になります。以下のトレースレベルが存在します。
- NONE (0)
- FATAL (1)
- ERROR (2)
- WARNING (3)
- INFO (4)
- DEBUG (5)
注記
トレースレベル NONE を選択した場合でも、エラー状況に関する情報が記録されます。
テナントデータベースは、テナントデータベースのトレースレベルを変更しない限り、システムデータベースで設定されたデータベーストレースレベルを継承します。
テナントデータベースのトレースコンポーネントのトレースレベルは、デフォルト値としてシステムデータベースから継承されます。テナントデータベースの特定のコンポーネントに対して、すべてのサービスまたは特定のサービスに対して異なるトレースレベルを設定する場合は、該当するコンポーネントのトレースレベルを変更することで設定できます。
ユーザ固有トレース (デフォルト: 無効) およびエンドツーエンドデータベーストレース (デフォルト: 無効)
ユーザ固有トレースおよびエンドツーエンドトレースは、特定のユーザまたはエンドツーエンド分析のコンテキストでコンポーネントのトレースレベルを変更できるようにすることで、設定されたデータベーストレースを拡張します。これらのコンテキストのコンポーネントに対して設定されたトレースレベルは、データベーストレースで設定されたトレースレベルよりも優先されます。
エンドツーエンドトレースは、SAP HANA データベース外のアプリケーションによってトリガされます。通常、SAP HANA データベースコンポーネントのデフォルトトレースレベルは十分であり、変更する必要はありません。
SQL トレース (デフォルト: 無効)
SQL トレースでは、インデックスサーバ (テナントデータベース) またはネームサーバ (システムデータベース) で実行されたすべての SQL 文に関する情報が収集され、詳細分析のためにトレースファイルに保存されます。
SQL トレースによって収集される情報には、各文の実行時間、影響を受けるレコードの数、レポートされた潜在的なエラー (一意性制約違反など)、使用されているデータベース接続などが含まれます。SQL トレースは、実行された SQL 文とそのアプリケーション全体およびシステムパフォーマンスへの潜在的な影響を理解し、文レベルで潜在的なパフォーマンスボトルネックを特定するための適切な開始ポイントです。
SQL トレース情報は、実行可能な Python プログラム (デフォルトsqltrace_<...>.py) として保存され、トレースされたデータベース操作の再生に使用できます。SQL トレースアナライザツールを使用して、ファイルの分析を自動化することもできます。
SAP HANA SQL トレースアナライザ
SAP HANA SQL トレースアナライザは、SAP HANA SQL トレース出力の分析に使用される Python ツールです。このツールでは、上位 SQL 文の概要、アクセスされたテーブル、さまざまな文タイプおよび実行されたトランザクションに関する統計情報が提供されます。
SAP HANA SQL トレースアナライザのインストールおよび使用の詳細については、以下のノートを参照してください。
SAP ノート 2412519 - FAQ: SAP HANA SQL トレースアナライザ (FAQ: SAP HANA SQL Trace Analyzer)
パフォーマンストレース (デフォルト: 無効)
パフォーマンストレースは SAP HANA データベースに組み込まれたパフォーマンストレースツールです。データベースカーネルの個別クエリ処理ステップのためにパフォーマンス指標が記録されます。SAP サポートからパフォーマンストレースの提供を依頼される場合があります。
収集される情報には、特定のステップで必要となる処理時間、読込および書込のデータサイズ、ネットワーク通信、およびオペレータまたは処理ステップ固有の情報 (入力および出力として使用されるレコードの数など) が含まれます。パフォーマンストレースを複数のテナントデータベースで同時に有効化し、データベース間のクエリを分析することができます。
パフォーマンストレースファイル
パフォーマンストレースの結果は、ファイル拡張子 .tpt または .cpt でトレースファイルに保存されます。このファイルには、他の診断ファイルを使用してアクセスすることができます。これらのファイルを分析するには、出力形式 (.tpt および .cpt) を読み込むことができるツールが必要です。SAP サポートには、パフォーマンストレースを評価するためのツールが用意されています。
パフォーマンストレースの有効化および設定
ALTER SYSTEM * PERFTRACE SQL 文を使用して、パフォーマンストレースを有効化および設定できます。
パフォーマンストレースを開始するには、以下のコマンドを実行します。
Code Snippet1ALTER SYSTEM START PERFTRACE高負荷文トレース (デフォルト: 無効)
高負荷文とは、実行時間が設定済のしきい値を上回る個別の SQL 文のことです。高負荷文トレースでは、詳細分析のために高負荷文に関する情報が記録されます。
高負荷文トレースの有効化に加えて、文ごとのメモリ追跡を有効化した場合、高負荷文トレースには、高負荷文の実行に使用されたピークメモリサイズも表示されます。
実行負荷の高いステートメントトレース情報
TRACE ADMIN 権限がある場合は、以下の方法で実行負荷の高いステートメントのトレース情報を表示できます。
- SAP HANA コックピットの SQL Statementsアプリ
- SAP HANA データベースエクスプローラの Trace Configuration→Expensive Statements Trace タブ
- M_EXPENSIVE_STATEMENTS システムビュー
実行負荷の高いステートメントトレースの有効化と設定
SAP HANA コックピットまたは SAP HANA データベースエクスプローラで、長時間ステートメントトレースを有効化および有効化することができます。または、設定ファイルのセクションにあるexpensive_statementglobal.iniパラメータを変更することもできます。
カーネルプロファイラ (デフォルト: 無効)
カーネルプロファイラは SAP HANA データベースに組み込まれたサンプリングプロファイラです。これを使用して、サードパーティソフトウェアをインストールできないシステム、またはパフォーマンストレースでアクセスできないデータベースの一部に関するパフォーマンスの問題を分析することができます。
カーネルプロファイルでは、クエリ処理中に頻繁な/高負荷の実行パスに関する情報が収集されます。
カーネルプロファイラトレース
プロファイリング結果はトレースファイル CPU_<service>_<host>_<port>_<timestamp>.<format> および WAIT_<service>_<host>_<port>_<timestamp>.<format> に保存されます。ここで、<format> は dot または kcachegrind です。プロファイリング結果には、他の診断ファイルを使用してアクセスすることができます。これらのトレースファイルを有意に分析するには、設定された出力形式、つまり KCacheGrind または DOT (デフォルト形式) を読み込むことができるツールが必要です。または、ファイルを SAP サポートに送信してください。
カーネルプロファイラの有効化および設定
SAP HANA データベースエクスプローラでカーネルプロファイルを有効化して設定します。分析する SQL 文を実行する直前にカーネルプロファイラトレースを開始し、終了直後に停止することをお奨めします。これにより、関連のないステートメントの不要な記録が回避されます。また、このようなトレースはパフォーマンスに悪影響を及ぼす可能性があるため、お奨めします。
注記
カーネルプロファイルを有効化するには、SAP_INTERNAL_HANA_SUPPORT ロールが必要です。このロールは、SAP HANA 開発サポート専用です。
計画トレース (デフォルト: 無効)
計画トレースを使用すると、特定の時間枠内に実行された SQL クエリとその実行計画を収集することができます。トレースされた各 SQL クエリについて、パフォーマンス分析の実行計画を視覚化することができます。計画トレースは、SQL アナライザのトレース機能です。
注記
SELECT 文のみが計画トレースでトレースされます。
計画トレースを有効化するには、Manage SQL Performance カードを検索します。このカードは、Database Overview 画面の Administration ビューまたは All ビューに統合されています。そのカード内で、Plan Trace セクションを選択します。


