2008-09-09 13 views
2

長時間実行されているクエリがInformixデータベースサーバー上でどのように見つかっていますか?私はCPUを使い果たしているクエリを持っており、そのクエリが何であるかを知りたいと思っています。Informixで長時間実行されているクエリを検索しますか?

+1

あなたが一番助けてくれた回答を選択してください。 –

+0

私は答えを選んでいませんでした。 – grom

答えて

-1
SELECT ELAPSED_TIME_MIN,SUBSTR(AUTHID,1,10) AS AUTH_ID, 
AGENT_ID, APPL_STATUS,SUBSTR(STMT_TEXT,1,20) AS SQL_TEXT 
FROM SYSIBMADM.LONG_RUNNING_SQL 
WHERE ELAPSED_TIME_MIN > 0 
ORDER BY ELAPSED_TIME_MIN DESC 

クレジット:SQL to View Long Running Queries提案答えは、DB2用のInformixのではないためだ

+0

SYSIBMADMは、これがDB2照会であり、Informix照会ではないことを示唆しています。 –

5

クエリは、現在 1 -r -g行為onstatの出力を見て、を持つアイテムを探して実行している場合:これらのページはあなたが始めるのに役立つかもしれませんrstcbは0ではない

Running threads: 
tid  tcb    rstcb   prty status    vp-class  name 
106  c0000000d4860950 0    2 running    107soc  soctcppoll 
107  c0000000d4881950 0    2 running    108soc  soctcppoll 
564457 c0000000d7f28250 c0000000d7afcf20 2 running     1cpu  CDRD_10 

この例では、3番目の行が現在実行されている行です。非ゼロのrstcb値を持つ複数の行がある場合は、常にまたはほぼ常に存在する値を探して少し調べてください。それはあなたの探しているセッションの可能性が最も高いです。

c0000000d7afcf20は、この例で私が興味を持っているアドレスです。

使用onstat -u | grepがこれは私達の例ではでセッションIDを与えるセッション

c0000000d7afcf20 Y--P--- 22887 informix -  c0000000d5b0abd0 0 5  14060 3811 

を見つけることをc0000000d7afcf20。 onstat -g ses 22887 を使用して、そのセッションに関する情報を表示してください。私の例ではシステムセッションなので、onstat -g ses出力には何も表示されません。

1

これで、sysmasterに接続する方法をわかりました。 JDBC接続文字列は次のとおりです。

JDBC:INFORMIX-SQLI://dbserver.local:1526 /のsysmaster:INFORMIXSERVER = MyDatabaseという

ポート番号は、あなたがに接続しているときと同じである

実際のデータベースそれはあなたの接続文字列があるされている場合:

JDBC:INFORMIX-SQLI://データベース:1541/CRM:INFORMIXSERVER = crmlive

は、その後のsysmaster接続文字列は次のとおりです。

JDBC:INFORMIX-SQLI://データベース:1541 /のsysmaster:crmlive

はまたの数が含まthis wiki pageを見つけ= INFORMIXSERVER sysmasterテーブルで操作するためのSQLクエリ。

関連する問題