■SI Object Browser 掲示板
|
ユーザの皆様、開発者、サポート担当者の交流のための掲示板です! ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。 なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。 |
|
| ※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】 ※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。 ※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。 ※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。 | |
ロック情報の表示について
2004/03/22 20:11
OB
5
わたしいく
いつもお世話になっております。
標記の件、投稿No.1663にてSQLを回答いただいておりますが、
#企業秘密で教えてもらえないと思っていましたが、ここを覗いたら
#あっさりと(?)公開していて感激してしまいました
経過時間がないですよね?
ついでにご教示頂けると嬉しいです。
標記の件、投稿No.1663にてSQLを回答いただいておりますが、
#企業秘密で教えてもらえないと思っていましたが、ここを覗いたら
#あっさりと(?)公開していて感激してしまいました
経過時間がないですよね?
ついでにご教示頂けると嬉しいです。
返信を投稿
OB
後迫@SI
こんにちは
後迫@SIです。
>#企業秘密で教えてもらえないと思っていましたが、ここを覗いたら
>#あっさりと(?)公開していて感激してしまいました
そうですね。あまり公開できるわけでもないのですが、
内部SQLについては要望があれば教えることにしています。
前回のSQLですが、SELECT句の最後に「A.CTIME」が抜けていました。
大変申し訳ございませんでした。
(経過時間は、V$LOCKのCTIME列を表示しています。)
どうぞよろしくお願いいたします。
後迫@SIです。
>#企業秘密で教えてもらえないと思っていましたが、ここを覗いたら
>#あっさりと(?)公開していて感激してしまいました
そうですね。あまり公開できるわけでもないのですが、
内部SQLについては要望があれば教えることにしています。
前回のSQLですが、SELECT句の最後に「A.CTIME」が抜けていました。
大変申し訳ございませんでした。
(経過時間は、V$LOCKのCTIME列を表示しています。)
どうぞよろしくお願いいたします。
返信を投稿
OB
わたしいく
いつもお世話になっております。
早々のご回答誠に有り難うございます。
合わせて質問すれば良かったのですが、セッション情報の
実行コマンドはどこから取得しているのでしょうか?
V$SESSIONにはありませんよね??
それから、「カーソル」タブで表示しているSQL文の
取得方法もご教示頂けないでしょうか?
#お客様に現在の負荷状況を提示する資料に使いたいのです
以上、宜しくお願い致します。
早々のご回答誠に有り難うございます。
合わせて質問すれば良かったのですが、セッション情報の
実行コマンドはどこから取得しているのでしょうか?
V$SESSIONにはありませんよね??
それから、「カーソル」タブで表示しているSQL文の
取得方法もご教示頂けないでしょうか?
#お客様に現在の負荷状況を提示する資料に使いたいのです
以上、宜しくお願い致します。
返信を投稿
OB
後迫@SI
こんにちは
後迫@SIです。
お問い合わせいただきました2点について、回答させていただきます。
①
>合わせて質問すれば良かったのですが、セッション情報の
>実行コマンドはどこから取得しているのでしょうか?
>V$SESSIONにはありませんよね??
セッション情報画面につきましては、以下のようなSQLとなります。
(「実行コマンド」はAUDIT_ACTIONSテーブルから取得しています。)
SELECT A.SID,
A.STATUS,
A.USERNAME,
A.SCHEMANAME,
A.OSUSER,
A.MACHINE,
A.PROGRAM,
A.SERIAL#,
B.NAME
FROM V$SESSION A,
AUDIT_ACTIONS B
WHERE A.COMMAND = B.ACTION
②
>それから、「カーソル」タブで表示しているSQL文の
>取得方法もご教示頂けないでしょうか?
オープン中のカーソル情報を所得するSQLは以下のとおりです。
(SIDは①のSQLで取得したSIDを代入しています。)
SELECT B.SQL_TEXT
FROM V$OPEN_CURSOR A,
V$SQLTEXT B
WHERE A.SID = /* ①の SID */
AND A.ADDRESS = B.ADDRESS
AND A.HASH_VALUE = B.HASH_VALUE
ORDER BY B.ADDRESS, B.HASH_VALUE, B.COMMAND_TYPE, B.PIECE
どうぞよろしくお願いいたします。
後迫@SIです。
お問い合わせいただきました2点について、回答させていただきます。
①
>合わせて質問すれば良かったのですが、セッション情報の
>実行コマンドはどこから取得しているのでしょうか?
>V$SESSIONにはありませんよね??
セッション情報画面につきましては、以下のようなSQLとなります。
(「実行コマンド」はAUDIT_ACTIONSテーブルから取得しています。)
SELECT A.SID,
A.STATUS,
A.USERNAME,
A.SCHEMANAME,
A.OSUSER,
A.MACHINE,
A.PROGRAM,
A.SERIAL#,
B.NAME
FROM V$SESSION A,
AUDIT_ACTIONS B
WHERE A.COMMAND = B.ACTION
②
>それから、「カーソル」タブで表示しているSQL文の
>取得方法もご教示頂けないでしょうか?
オープン中のカーソル情報を所得するSQLは以下のとおりです。
(SIDは①のSQLで取得したSIDを代入しています。)
SELECT B.SQL_TEXT
FROM V$OPEN_CURSOR A,
V$SQLTEXT B
WHERE A.SID = /* ①の SID */
AND A.ADDRESS = B.ADDRESS
AND A.HASH_VALUE = B.HASH_VALUE
ORDER BY B.ADDRESS, B.HASH_VALUE, B.COMMAND_TYPE, B.PIECE
どうぞよろしくお願いいたします。
返信を投稿
OB
後迫@SI
こんにちは
後迫@SIです。
お問い合わせいただきました件につきましてですが、
以下のSQLで可能と思われますのでお試しいただけますでしょうか。
(前回のSQLから、WHERE条件に2行を追加しております。)
SELECT A.SID,
C.USERNAME,
C.OSUSER,
DECODE(A.TYPE, 'TM', B1.NAME, ''),
DECODE(A.TYPE, 'TM', B2.NAME, ''),
DECODE(A.TYPE, 'TX', '行ロック', 'TM', '表ロック', A.TYPE),
DECODE(A.LMODE, 0, 'なし', 1, 'NULL', 2, '行共有', 3, '行排他', 4, '共有', 5, '共有行排他', 6, '排他', ''),
DECODE(A.REQUEST,0, 'なし', 1, 'NULL', 2, '行共有', 3, '行排他', 4, '共有', 5, '共有行排他', 6, '排他', '')
FROM V$LOCK A, SYS.OBJ$ B1, SYS.USER$ B2, V$SESSION C
WHERE A.ID1 = B1.OBJ#(+)
AND B1.OWNER# = B2.USER#(+)
AND A.SID = C.SID
AND C.TYPE = 'USER'
AND REQUEST IS NOT NULL
AND BLOCK = 1
何卒よろしくお願いいたします。
後迫@SIです。
お問い合わせいただきました件につきましてですが、
以下のSQLで可能と思われますのでお試しいただけますでしょうか。
(前回のSQLから、WHERE条件に2行を追加しております。)
SELECT A.SID,
C.USERNAME,
C.OSUSER,
DECODE(A.TYPE, 'TM', B1.NAME, ''),
DECODE(A.TYPE, 'TM', B2.NAME, ''),
DECODE(A.TYPE, 'TX', '行ロック', 'TM', '表ロック', A.TYPE),
DECODE(A.LMODE, 0, 'なし', 1, 'NULL', 2, '行共有', 3, '行排他', 4, '共有', 5, '共有行排他', 6, '排他', ''),
DECODE(A.REQUEST,0, 'なし', 1, 'NULL', 2, '行共有', 3, '行排他', 4, '共有', 5, '共有行排他', 6, '排他', '')
FROM V$LOCK A, SYS.OBJ$ B1, SYS.USER$ B2, V$SESSION C
WHERE A.ID1 = B1.OBJ#(+)
AND B1.OWNER# = B2.USER#(+)
AND A.SID = C.SID
AND C.TYPE = 'USER'
AND REQUEST IS NOT NULL
AND BLOCK = 1
何卒よろしくお願いいたします。
返信を投稿
OB