Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » パフォーマンスの向上、診断、モニタリング » パフォーマンスのモニタリングと診断のツール » その他の診断ツールと方法

 

要求ロギング

要求ロギングは、アプリケーションから受け取った要求と、アプリケーションに送られた応答のログを個別に記録します。データベースサーバがアプリケーションに何を要求されているかを特定したい場合に最も役立ちます。

特定のアプリケーションのパフォーマンスを分析するときに、データベースサーバとクライアントのどちらに原因があるか不明な場合は、要求ロギングから始めることもおすすめします。要求ロギングは、問題の原因となっている可能性の高い、データベースサーバに対する特定の要求を特定するためにも使用できます。

注意

要求ロギング機能で提供されるすべての機能とデータは、診断トレーシングを使用した場合も利用できます。診断トレーシングでは、それ以外の機能やデータも提供されます。

ログに取られる情報には、タイムスタンプ、接続 ID、要求タイプなどがあります。クエリについては、独立性レベル、フェッチされたローの数、カーソルタイプもあります。INSERT 文、UPDATE 文、DELETE 文については、対象のロー数と実行されたトリガ数もあります。

注意

要求ログには、難読化された機密情報を持つすべての文が含まれます。機密情報が難読化されていない唯一のケースは、文に解析エラーがある場合です。

-zr サーバオプションを使用すると、データベースサーバの起動時に要求ロギングをオンにできます。-zo サーバオプションを使用すると、出力を要求ログファイルにリダイレクトして、さらに分析を進めることができます。-zn オプションと -zs オプションを使用すると、保存する要求ログファイルの数と要求ログファイルの最大サイズを指定できます。

これらのオプションの詳細については、次の項を参照してください。

注意

サーバオプションは、Sybase Central の診断トレーシングに影響しません。ファイルベースの要求ロギングは、Sybase Central の診断トレーシング機能とは完全に別個のものです。Sybase Central の診断トレーシング機能では、データベース内の dbo 所有の診断テーブルを使用して要求ログ情報が格納されます。

sa_get_request_times システムプロシージャは、要求ログを読み込み、ログの文とその実行時間をグローバルテンポラリテーブル (satmp_request_time) に格納します。INSERT、UPDATE、DELETE の各文の場合は、記録される時間は、文が実行された時間です。クエリの場合、記録された時間は、PREPARE から DROP (DESCRIBE/OPEN/FETCH/CLOSE) までの合計所要時間です。したがって、オープンカーソルには注意する必要があります。

改善候補の文について satmp_request_time を分析します。低コストでも頻繁に実行される文が、パフォーマンスの問題を引き起こしている可能性があります。

sa_get_request_profile を使用して sa_get_request_times を呼び出し、satmp_request_time を satmp_request_profile という別のグローバルテンポラリテーブルにまとめることができます。また、このプロシージャは、文をグループ化し、呼び出しの回数、実行時間などの情報を提供します。

警告

Perl スクリプト tracetime.pl を使用してログを分析する場合は、要求ログがキャプチャされる間、max_client_statements_cached オプションを 0 に設定してクライアント文のキャシュを無効にしておく必要があります。

 参照
 例