土曜日, 9月 09, 2006

一時表領域

■一時表領域について

●V$SORT_USAGE
ソート状況の確認が出来る。

SELECT * FROM V$SORT_USAGE;

SELECT SID,OSUSER,MACHINE,BLOCKS,PROGRAM
FROM V$SESSION A,V$SORT_USAGE B
WHERE A.SADDR = B.SESSION_ADDR
ORDER BY BLOCKS DESC;

SELECT USER,B.SQL_TEXT,SUM(BLOCKS)
FROM V$SORT_USAGE A,V$SQLTEXT B
WHERE A.SQLADDR=B.ADDRESS
AND SQLHASH=B.HASH_VALUE
GROUP BY USER,B.SQL_TEXT;

●V$SORT_SEGMENT
SELECT * FROM V$SORT_SEGMENT;

●V$TEMPSEG_USAGE
SELECT * FROM V$TEMPSEG_USAGE;

レコードが選択されませんでした。

SQL>

●DBA_TEMP_FILES
SELECT * FROM DBA_TEMP_FILES;

*********************************************
●V$SORT_USAGE
SELECT * FROM V$SORT_USAGE;

レコードが選択されませんでした。

SQL>

SELECT TABLESPACE_NAME, BYTES, BLOCKS, MAXBYTES, MAXBLOCKS, USER_BYTES, USER_BLOCKS
FROM DBA_TEMP_FILES;

TABLESPACE_NAME BYTES BLOCKS MAXBYTES MAXBLOCKS USER_BYTES USER_BLOCKS
------------------------------ ---------- ---------- ---------- ---------- ---------- -----------
TEMP 5242880000 640000 0 0 5241831424 639872

SQL>

■一時表領域の再作成
----------------------------------------
次のファイルを作成します。
DELTEMP.SQL及びCREATETEMP.SQLをREPTEMP.BATと
同一パスに配置し、バッチファイルを実行します。

※パス及びサービス名、ファイルサイズ等は使用環境に従い修正します。


SQLPLUS /NOLOG @DELTEMP.SQL
DEL D:\ORACLE\ORADATA\TEMP01.DBF
SQLPLUS /NOLOG @CREATETEMP.SQL
DEL D:\ORACLE\ORADATA\TEMPX01.DBF


SET ECHO ON
CONNECT SYS/CHANGE_ON_INSTALL@???? AS SYSDBA
CREATE TEMPORARY TABLESPACE TEMPX
TEMPFILE 'D:\ORACLE\ORADATA\TEMPX01.DBF' SIZE 10M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMPX;
DROP TABLESPACE TEMP;
EXIT


SET ECHO ON
CONNECT SYS/CHANGE_ON_INSTALL@???? AS SYSDBA
CREATE TEMPORARY TABLESPACE TEMP
TEMPFILE 'D:\ORACLE\ORADATA\TEMP01.DBF' SIZE 40M REUSE AUTOEXTEND ON
NEXT 640K MAXSIZE UNLIMITED;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
DROP TABLESPACE TEMPX;
EXIT

0 件のコメント: