成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

oracle查看表空间使用情况

Q1:怎么察看Oracle 数据库表空间的使用情况

oracle 数据库里查看表空间使用状况;
oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了。查看方法如下SQL:
方法一:
select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)
方法二:
SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name
当发现有的表空间不够的错误时,处理如下:
1:找出该表空间对应的数据文件及路径
select * from dba_data_files t
where t.tablespace_name = ARD
2:增大数据文件
alter database datafile 全路径的数据文件名称 resize ***M
3:增加数据文件
alter tablespace 表空间名称
add datafile 全路径的数据文件名称 ***M
注解:表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G

Q2:如何查看oracle表空间使用情况

查看所有表空间使用情况 : select b.file_id 文件ID号, b.tablespace_name 表空间名, b.bytes/1024/1024M字节数, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024M 已使用, sum(nvl(a.bytes,0))/1024/1024M 剩余空间, 100 - sum(nvl(a.by...

Q3:如何查看oracle表空间大小的使用情况

1. 全部表空间的大小
select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
TABLESPACE_NAME      SUM(BYTES)/1024/1024、-------------------- --------------------
UNDOTBS1                   65、SYSAUX                      520
USERS                    6、SYSTEM                      680
EXAMPLE                   100
2. 空闲表空间大小
select tablespace_name, sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
TABLESPACE_NAME      SUM(BYTES)/1024/1024、-------------------- --------------------
SYSAUX                       34、UNDOTBS1                1、USERS                    1、SYSTEM                    4、EXAMPLE                    22、
3. 已使用空间可以这样计算
select a.tablespace_name, total, free, total-free as used from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name;
TABLESPACE_NAME       TOTAL       FREE     USED
-------------------- ---------- ---------- ----------
SYSAUX                520    33.6875   486.3125、UNDOTBS1             65      1       64、USERS               6.25       1.25        5、SYSTEM                680        3.5    676.5、EXAMPLE             100    21.5625    78.4375、
更具体的sql语句:
select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%" from 
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a, 
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by a.tablespace_name;

Q4:oracle 数据库怎么查看temp表空间使用情况

查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)
GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小:

123456789101112SELECTtemp_used.tablespace_name,total-usedas"Free",totalas"Total",round(nvl(total-used,0)*100/total,3)"Freepercent"FROM(SELECTtablespace_name,SUM(bytes_used)/1024/1024usedFROMGV_$TEMP_SPACE_HEADERGROUPBYtablespace_name)temp_used,(SELECTtablespace_name,SUM(bytes)/1024/1024totalFROMdba_temp_filesGROUPBYtablespace_name)temp_totalWHEREtemp_used.tablespace_name=temp_total.tablespace_nameORDERBYB.TABLESPACE,B.SEGFILE#,B.SEGBLK#,B.BLOCKS;

猜你喜欢

更多