微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发现什么进程/查询使用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,你应该在正确的路径上.

原文地址:https://www.jb51.cc/oracle/204891.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐