WX2 でリソースを大量に消費し、時間のかかるクエリを見つける方法はありますか?
私はテーブルをチェックしようとしましSYS.IPE_COMMAND
たが、助けにはなりませんでした。SYS.IPE_TRANSACTION
WX2 でリソースを大量に消費し、時間のかかるクエリを見つける方法はありますか?
私はテーブルをチェックしようとしましSYS.IPE_COMMAND
たが、助けにはなりませんでした。SYS.IPE_TRANSACTION
実行中のクエリを特定する最善の方法は、SYS として Kognitio コンソールに接続し、[ツール] | [ツール] を使用することです。問題のあるクエリを特定します。これにより、Kognitio 仮想テーブルに対して多数のクエリが実行され、現在のクエリが実行されている時間、それらが使用している RAM の量などを把握できます。最も負荷の高いクエリがリストの一番上に表示され、最後の列の「相対重大度」でランク付けされます。 "。
過去に実行されたクエリの場合、IPE_COMMAND を調べて期間を確認できますが、非 SELECT クエリの場合のみです。これは、SELECT クエリがデフォルトで DECLARE CURSOR ステートメントのみをログに記録するためです。これは、基本的に実行時間ではなくコンパイル時間を測定するだけです。SELECT クエリの詳細を表示するには、IPE_TRANSACTION に参加して、トランザクションの開始時刻と終了時刻を確認する必要があります。
非 SELECT クエリの場合、IPE_COMMAND には、いくつかの列にかかった時間の内訳が含まれます (すべてミリ秒単位)。
コメントに記載されているように、履歴ビューの画像コマンドの場合は、クエリを実行できます
... SYS.IPE_COMMAND WHERE COMMAND IMATCHING 'ビュー イメージの作成' AND TOTAL_TIME > 300000"
現在実行中のコマンドの場合は、SYS.IPE_CURTRANS を調べ、IPE_TRANSACTION に参加して、トランザクションの開始時刻を見つけることができます (CVI が独自のトランザクションで実行されていると仮定します。そうでない場合は、IPE_COMMAND を調べて、この TNO の最後のステートメントが完了し、それを開始時刻として使用します)