ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 關於臨時表空間異常處理的一些整理

關於臨時表空間異常處理的一些整理

原创 Linux操作系统 作者:golden_zhou 时间:2011-08-25 16:08:50 0 删除 编辑

1. 查詢在線使用臨時表空間的 session

SELECT se.username username,
       se.SID sid,
       se.serial# serial#,
       se.status status,
       se.sql_hash_value,
       se.prev_hash_value,
       se.machine machine,
       su.TABLESPACE tablespace,
       su.segtype,
       su.CONTENTS CONTENTS
FROM v$session se,
     v$sort_usage su
WHERE se.saddr=su.session_addr;


2. 查詢臨時表空間使用狀況

  SELECT A.tablespace_name tablespace,  D.mb_total,
  SUM(A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
  D.mb_total - SUM(A.used_blocks * D.block_size) / 1024 / 1024 mb_free
  FROM v$sort_segment A,
  (SELECT B.name, C.block_size, SUM(C.bytes) / 1024 / 1024 mb_total
  FROM v$tablespace B, v$tempfile C
  WHERE B.ts# = C.ts#
  GROUP BY B.name, C.block_size) D
  WHERE A.tablespace_name = D.name
  GROUP by A.tablespace_name, D.mb_total;


3. 語句使用的臨時表空間

SELECT S.sid || ',' || S.serial# sid_serial,
  S.username,
  S.osuser,
  P.spid,
  S.module,
  S.program,
  SUM(T.blocks) * TBS.block_size / 1024 / 1024 mb_used,
  T.tablespace,
  COUNT(*) sort_ops
  FROM v$sort_usage T, v$session S, dba_tablespaces TBS, v$process P
  WHERE T.session_addr = S.saddr
  AND S.paddr = P.addr
  AND T.tablespace = TBS.tablespace_name
  GROUP BY S.sid,
  S.serial#,
  S.username,
  S.osuser,
  P.spid,
  S.module,
  S.program,
  TBS.block_size,
  T.tablespace
  ORDER BY sid_serial;

4. 語句使用的臨時表空間


SELECT S.sid || ',' || S.serial# sid_serial,
  S.username,
  T.blocks * TBS.block_size / 1024 / 1024 mb_used,
  T.tablespace,
  T.sqladdr address,
  Q.hash_value,
  Q.sql_text
  FROM v$sort_usage T, v$session S, v$sqlarea Q, dba_tablespaces TBS
  WHERE T.session_addr = S.saddr
  AND T.sqladdr = Q.address(+)
  AND T.tablespace = TBS.tablespace_name
  ORDER BY S.sid;

5. 識別由於缺少臨時表空間失敗的SQL語句

  ALTER SESSION SET EVENTS '1652 trace name errorstack';
  ALTER SYSTEM SET EVENTS '1652 trace name errorstack';
  ALTER SYSTEM SET EVENT = '1652 trace name errorstack' SCOPE = SPFILE;

   還可以在其他會話內使用 oradebug event 時行跟蹤

  ALTER SYSTEM RESET EVENT SCOPE = SPFILE SID = '*';
  ALTER SYSTEM SET EVENTS '1652 trace name context off';
  ALTER SESSION SET EVENTS '1652 trace name context off';

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25198367/viewspace-705789/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 分區表示例
请登录后发表评论 登录
全部评论

注册时间:2011-03-09

  • 博文量
    238
  • 访问量
    300890