oracle 数据库怎么查看temp表空间使用情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 数据库怎么查看temp表空间使用情况相关的知识,希望对你有一定的参考价值。
查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)
GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小:
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name
ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS; 参考技术A ---查看表空间使用率大于80%的语句
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)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES)/1024/1024) 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(BYTES)/1024/1024) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME=F.TABLESPACE_NAME AND ROUND((D.TOT_GROOTTE_MB-F.TOTAL_BYTES)/D.TOT_GROOTTE_MB*100,2)>80
ORDER BY 2 DESC;
----查看表空间所在的数据文件
select file_name from dba_data_files where tablespace_name='users';
具体情况可根据上述语句灵活改变
oracle数据库创建自动增长的表空间语句怎么写?
要创建个JYDB的表空间,最初大小为5G,空间满了每次自动增长1G,最好能设置剩余10%空间自动增长。
按磁盘剩余空间的10%自动增长,这个实现不了。 如果表空间设置为自动增长,在空间不足的情况下Oracle系统会自动增长表空间的,但是也不会超过磁盘的总空间大小。 创建表空间的语法如下:create tablespace jydbdatafile 'XXX\XXX\xx.dbf' --这里数据文件的路径你自己视情况定size 5120Mautoextend onnext 1024Mextent management local --这里设置表空间为本地管理 参考技术Acreate tablespace news_tablespace datafile 'c:\\SmartDB01.ora' size 500M;
设置表空间自动增长
ALTER DATABASE DATAFILE 'c:\\SmartDB01.ora' AUTOEXTEND ON;//打开自动增长ALTER DATABASE DATAFILE 'c:\\SmartDB01.ora' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m
ALTER DATABASE DATAFILE 'c:\\SmartDB01.ora' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,数据表最大不超过1G 参考技术B CREATE SMALLFILE TABLESPACE "表空间名称" DATAFILE '表空间保存的路径' SIZE 20M AUTOEXTEND ON NEXT 20K MAXSIZE UNLIMITED NOLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT NOCOMPRESS; 参考技术C create tablespace "JYDB" logging datafile 'd:\oracle\oradata\JYDB.dbf' size 5000M autoextend on next 1000M maxsize unlimited extent management local segment space management auto; 参考技术D create tablespace JYDB datafile 'path' SIZE 5000M AUTOEXTEND ON NEXT 1024M
MAXSIZE UNLIMITED MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
以上是关于oracle 数据库怎么查看temp表空间使用情况的主要内容,如果未能解决你的问题,请参考以下文章