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

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...