oracle temp 表空间

1.  查询空间的使用率,有用视图dba_temp_file,   v$temp_extent_pool。

select c.tablespace_name,       

       to_char(c.bytes / 1024 / 1024 / 1024, '99,999.999') total_gb,       

       to_char((c.bytes - d.bytes_used) / 1024 / 1024 / 1024, '99,999.999') free_gb,       

       to_char(d.bytes_used / 1024 / 1024 / 1024, '99,999.999') use_gb,       

       to_char(d.bytes_used * 100 / c.bytes, '99.99') || '%' use

  from (select tablespace_name, sum(bytes) bytes        

          from dba_temp_files

         GROUP by tablespace_name) c,       

       (select tablespace_name, sum(bytes_cached) bytes_used        

          from v$temp_extent_pool

         GROUP by tablespace_name) d

 where c.tablespace_name = d.tablespace_name;


2.   查看那些用户正在适用temp表空间,用到视图v$tempseg_usage,  v$temp_space_header

select a.username,       

       a.sql_id,       

       a.SEGTYPE,

       a.tablespace,       

       b.BYTES_USED / 1024 / 1024 / 1024,      

       b.BYTES_FREE / 1024 / 1024 / 1024

  from V$TEMPSEG_USAGE a  ,V$TEMP_SPACE_HEADER b 

  where a.TABLESPACE = b.tablespace_name 

  and a.tablespace='TEMP';


3. 根据查询到的sql_id值去查看那些session正在适用temp。



引用的连接:

http://blog.itpub.net/31547066/viewspace-2286048/

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

转载于:http://blog.itpub.net/21374452/viewspace-2645056/

### 查询 Oracle 数据库 Temp 表空间使用率和状态 为了全面了解 Oracle 数据库中的 `TEMP` 表空间使用情况,可以采用多种方法来获取所需的信息。 #### 方法一:通过 DBA_TEMP_FREE_SPACE 查看临时表空间的使用率 此查询提供了关于每个临时表空间的总大小、已分配的空间量以及未使用的空间百分比: ```sql SELECT tablespace_name, ROUND(tablespace_size / 1024 / 1024, 2) AS size_mb, ROUND(free_space / 1024 / 1024, 2) AS free_mb, ROUND((1 - NVL(free_space, 0) / tablespace_size) * 100, 2) AS used_percent FROM dba_temp_free_space; ``` 上述SQL语句能够返回有关各个临时表空间的具体数据,包括名称、总体积(MB)、空闲体积(MB),还有已被占用的比例[^2]。 #### 方法二:利用 V$SORT_USAGE 动态性能视图监控当前正在使用的临时段 如果想要更深入地理解哪些进程正在消耗大量的临时存储资源,则可以通过如下命令获得实时信息: ```sql SELECT s.sid || ',' || s.serial# sid_serial, su.blocks * p.value/1024 usage_mb FROM v$sort_usage su, v$process p, v$session s WHERE su.session_addr = s.saddr AND su.processaddr = p.addr; ``` 这段脚本展示了具体会话 ID 及其对应的序列号连同它们所占有的临时区数量转换成兆字节的形式。这有助于识别出那些可能因排序操作或其他活动而过度依赖于 TEMP 的应用程序或用户行为[^1]。 #### 方法三:借助 X$KTFBUE 内部表评估历史上的最大扩展程度 对于希望掌握过去一段时间内曾达到的最大临时表空间需求的应用场景来说,下面这条指令或许有所帮助: ```sql SELECT MAX(ktfbuespc) "Max (KB)", TO_CHAR(MAX(ktfbueat), 'DD-MON-YYYY HH24:MI') "Date" FROM x$ktfbue; ``` 该查询揭示了自上次重启以来曾经触及到最高的 KB 数值及其发生的确切时间戳记。这对于容量规划特别有用处。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值