일반적으로 사용되는 DBA 성능 최적화 SQL 문

 때때로 테이블 스페이스 활용도가 너무 낮 으면 테이블 스페이스를 줄이고 복구 중에 공간 활용도와 백업 효율성을 향상시킬 수 있습니다.

1. 테이블 스페이스 사용량

--1. oracle查询表空间使用率

SELECT a.tablespace_name,
ROUND (a.total_size) "total_size(MB)",
ROUND (a.total_size) - ROUND (b.free_size, 3) "used_size(MB)",
ROUND (b.free_size, 3) "free_size(MB)",
ROUND (b.free_size / total_size * 100, 2) || '%' free_rate
FROM ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 total_size
FROM dba_data_files
GROUP BY tablespace_name) a,
( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 free_size
FROM dba_free_space
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name(+);


-- 2.更为直观的看法
select
  b.file_name 物理文件名,
  b.tablespace_name 表空间,
  b.bytes/1024/1024 大小M,
  (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
  substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.bytes
  order by b.tablespace_name;

--如果表空间不足,为表空间添加数据文件
--app_data表空间名称,添加数据文件名根据业务表空间命名规则命名

ALTER TABLESPACE app_data ADD DATAFILE '\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 10000M;

2. 오라클, 테이블 공간에 해당하는 데이터 파일, 사용자와 테이블 공간 간의 해당 관계를 쿼리

select tablespace_name,file_id,file_name from dba_data_files order by file_id;

 

추천

출처blog.csdn.net/weixin_41086692/article/details/103028007