发现什么进程/查询使用oracle临时表空间

前端之家收集整理的这篇文章主要介绍了发现什么进程/查询使用oracle临时表空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Oracle常见问题解答定义临时表空间如下:

Temporary tablespaces are used to
manage space for database sort
operations and for storing global
temporary tables. For example,if you
join two large tables,and Oracle
cannot do the sort in memory,space
will be allocated in a temporary
tablespace for doing the sort
operation.

这很棒,但是我需要更多关于使用这个空间的细节.由于应用程序设计的怪癖,大多数查询都会进行某种排序,因此我需要将其缩小到客户端可执行文件,目标表或sql语句.

从本质上说,我正在寻找线索来更准确地告诉我这个(相当大的应用程序)可能是什么问题.任何线索可能是有用的,只要它比“排序”更精确.

我不确定你已经有什么信息,但使用以下查询将指出哪些程序/用户/会话等当前正在使用您的临时空间.
SELECT   b.TABLESPACE,b.segfile#,b.segblk#,ROUND (  (  ( b.blocks * p.VALUE ) / 1024 / 1024 ),2 ) size_mb,a.SID,a.serial#,a.username,a.osuser,a.program,a.status
    FROM v$session a,v$sort_usage b,v$process c,v$parameter p
   WHERE p.NAME = 'db_block_size'
     AND a.saddr = b.session_addr
     AND a.paddr = c.addr
ORDER BY b.TABLESPACE,b.blocks;

一旦找出哪个会话正在损坏,那么看看正在执行的sql,你应该在正确的路径上.

猜你在找的Oracle相关文章