oracle查询表空间, 临时表空间大小并调整

                oracle查询表空间, 临时表空间大小并调整
一. 表空间

    1.1 查询表空间名, 和表空间大小:

SELECT a.tablespace_name "表空间名",
    total / (1024 * 1024 * 1024) "表空间大小(G)",
    free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
    (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
    round((total - free) / total, 4) * 100 "使用率 %"
    FROM (SELECT tablespace_name, SUM(bytes) free
   FROM dba_free_space
   GROUP BY tablespace_name) a,
   (SELECT tablespace_name, SUM(bytes) total
   FROM dba_data_files
   GROUP BY tablespace_name) b
   WHERE a.tablespace_name = b.tablespace_name;

    1.2 查询结果展示
up-7b043fecf8009d5fac48f5e8095733fe9f6.png
    1.3 可以按照自己的需求, 扩大或者缩小表空间: (如果要缩小的话, 需要确保使用率比较低)

--修改oracle数据库的相关表空间, 扩大, 使其提高效率
--ORA-30036
alter database datafile '/home/data/oracle/oradata/oracle/undotbs01.dbf' resize 31744M;
alter database datafile '/home/data/oracle/oradata/oracle/sysaux01.dbf' resize 2760M;
--alter database datafile '/home/data/oracle/oradata/oracle/system01.dbf' resize 2760M;
二. 临时表空间

    2.1  查询临时表空间的使用率

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.2  修改临时表空间大小:

--加大临时表空间,增加数据处理数量和效率
    ALTER DATABASE TEMPFILE '/home/data/oracle/oradata/oracle/temp01.dbf' RESIZE 20480M;
    ALTER DATABASE TEMPFILE '/home/data/oracle/oradata/oracle/sunway_1_temp.dbf' RESIZE 20480M;

    2.3  查询那些用户在使用

select a.username,a.sql_id,a.SEGTYPE,
  b.BYTES_USED/1024/1024/1024||'G',
  b.BYTES_FREE/1024/1024/1024 from V$TEMPSEG_USAGE a join V$TEMP_SPACE_HEADER b on a.TABLESPACE=b.tablespace_name;

解释username  正在执行sql的用户名
    sql_id    正在执行的sql的的sql_id
    segtype   正在执行的SQL语句做的是什么操作
    BYTES_USED 正在执行sql语句使用的临时表空间的大小
    BYTES_FREE  剩余多少临时表空间

    2.4  查询实例中时候是否有大字段在使用临时表空间:

select * from V$TEMPORARY_LOBS;
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天机玄正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值