_DB/SQL

Last-modified: 2013-02-21 (木) 12:01:03

DB結果をCSVへ

SET ECHO OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET LINESIZE 5000
SET TRIMSPOOL ON
SPOOL TE_SEARCH.csv
SELECT ‘項目名1’||’,'||’項目名2’||’,'||’項目名3’, FROM DUAL;
SELECT FILED1||’,'||FILED2||’,'||FIELD3 FROM TABLE1;
SPOOL OFF

sqlplus設定一覧

http://www.shift-the-oracle.com/sqlplus/system-variable/

日付

TO_DATE('2013-01-11 15:40:33', YYYY-MM-DD HH24:MI:SS')

DBロック一覧

SELECT
	A.SID SID,
	A.USERNAME USERNAME,
	A.SERIAL# SERIALNO,
	B.TYPE TYPE,
	B.ID1,
	B.ID2,
	D.OBJECT_NAME,
	DECODE(B.LMODE,
		0,'0:NONE',
		1, '1:NULL',
		2, '2:行共有(SS)',
		3, '3:行排他(SX)',
		4, '4:共有(S)',
		5, '5:共有行排他(SRX)',
		6, '6:排他(X)',
		B.LMODE) LMODE,
	DECODE(B.REQUEST,
		0, '0:NONE',
		1, '1:NULL',
		2, '2:行共有(SS)',
		3, '3:行排他(SX)',
		4, '4:共有(S)',
		5, '5:共有行排他(SRX)',
		6, '6:排他(X)',
		B.REQUEST) REQUEST,
	B.BLOCK,
	A.PROGRAM PROGRAM,
	TO_CHAR(B.CTIME/60,'999990.9') LOCK_TIME,
	C.SQL_TEXT SQL
FROM
	V$SESSION A,
	V$LOCK B,
	V$SQLAREA C,
	DBA_OBJECTS D
WHERE	A.SID = B.SID
AND	A.SQL_ADDRESS = C. ADDRESS (+)
AND     B.ID1         = D.OBJECT_ID (+)
AND     A.USERNAME IS NOT NULL
ORDER BY A.SID,B.TYPE,B.ID1,B.ID2

「BLOCK」が1のものがあれば、ロック待ちが発生している。
そのときのLOCK_TIMEがロック確保時間(分)
#注:ロック確保側のSQLはわからない。

上記のID1と同じでBLOCKが0のものがロック待ち。
このLOCK_TIMEでロック待ち時間がわかる。