oracle表空间查询、修改

一、表空间基础查询

--查表空间文件路径
select * from sys.dba_data_files;
--查临时表空间文件路径
SELECT * FROM sys.dba_temp_files;
--查user使用的表空间
SELECT DISTINCT
    t.tablespace_name
FROM
    dba_segments s
JOIN
    dba_tablespaces t ON s.tablespace_name = t.tablespace_name
WHERE
    s.owner = 'XG' -- 替换为您要查询的用户名
	ORDER BY t.tablespace_name ; 
--查user默认表空间、临时表空间
SELECT T.DEFAULT_TABLESPACE, T.TEMPORARY_TABLESPACE,t.* FROM dba_users t WHERE T.username = 'XG'; -- 替换为您要查询的用户名


二、查询表空间使用情况

select A.tablespace_name,A."用户名" , B.FILE_NAME,B."分配大小", C."空闲大小" from
(select owner AS "用户名",tablespace_name from dba_segments group by owner ,tablespace_name) A,
(select tablespace_name, FILE_NAME,sum(bytes) / 1024 / 1024 || ' M' as "分配大小" from dba_data_files group by tablespace_name,FILE_NAME) B,
( select tablespace_name, sum(bytes) / 1024 / 1024 || 'M' as "空闲大小" from dba_free_space group by tablespace_name) C
where A.tablespace_name = B.tablespace_name and A.tablespace_name = C.tablespace_name

SELECT * FROM dba_data_files

三、修改表空间大小

alter database datafile 'D:\OracleDB\oradata\uniz\SITRI_DATA01.DBF' resize 512m;
alter database datafile 'D:\OracleDB\oradata\uniz\TBS_MYCIM.DBF' resize 512m; 
alter database datafile 'D:\OracleDB\oradata\uniz\UNDOTBS01.DBF' resize 512m;

–查看表空间大小
SELECT FILE_NAME as 数据文件,
TABLESPACE_NAME as 表空间名称,
AUTOEXTENSIBLE as 自动扩展,
STATUS as 状态
,MAXBYTES as 可扩展最大值
,USER_BYTES as 已使用大小,
INCREMENT_BY as 自动扩展增量
FROM dba_data_files

–自动增长,表空间不足时增加200MB,最大扩展5000MB
alter database datafile ‘D:\DataBase\Test.DBF’ autoextend on next 200m maxsize 5000m;

–扩展无限大空间
alter database DATAFILE ‘D:\DataBase\Test.DBF’ autoextend on maxsize unlimited;

temp表空间的查询、修改:

SELECT
	tablespace_name, ROUND ( free_space / 1024 / 1024 / 1024, 2 ) "free(GB)",
	ROUND ( tablespace_size / 1024 / 1024 / 1024, 2) "total(GB)",
	ROUND ( NVL (free_space, 0) * 100 / tablespace_size, 3 ) "Free percent"
FROM  dba_temp_free_space;

修改临时表空间tmp的大小:
alter database tempfile ‘/home/oracle/oradata/trade/temp01.dbf’ resize 4096m;

查看表空间使用百分比

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
       D.TOT_GROOTTE_MB "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '%' "使用比",
       F.TOTAL_BYTES "空闲空间(M)",
       F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
          FROM SYS.DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
          FROM SYS.DBA_DATA_FILES DD
         GROUP BY DD.TABLESPACE_NAME) D
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 ORDER BY 1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值