
1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看
2、缩小临时表空间大小
alter database tempfile 'D:\ORACLE\PRODUCT\1020\ORADATA\TELEMT\TEMP01DBF' resize 100M;
3、扩展临时表空间:
方法一、增大临时文件大小:
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01dbf’ resize 100m;
方法二、将临时数据文件设为自动扩展:
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01dbf’ autoextend on next 5m maxsize unlimited;
方法三、向临时表空间中添加数据文件:
SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02dbf’ size 100m;
4、创建临时表空间:
SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11dbf’ size 10M;
5、更改系统的默认临时表空间:
--查询默认临时表空间
select from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默认临时表空间
alter database default temporary tablespace temp1;
所有用户的默认临时表空间都将切换为新的临时表空间:
select username,temporary_tablespace,default_ from dba_users;
--更改某一用户的临时表空间:
alter user scott temporary tablespace temp;
6、删除临时表空间
删除临时表空间的一个数据文件:
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02dbf’ drop;
删除临时表空间(彻底删除):
SQL> drop tablespace temp1 including contents and datafiles cascade constraints;
7、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)
GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小
SELECT temp_usedtablespace_name,
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_usedtablespace_name = temp_totaltablespace_name
ORDER BY BTABLESPACE, BSEGFILE#, BSEGBLK#, BBLOCKS;
希望能帮到您!
oracle 数据库里查看表空间使用状况;
oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了。查看方法如下SQL:
方法一:
select dbftablespace_name,
dbftotalspace "总量(M)",
dbftotalblocks as 总块数,
dfsfreespace "剩余总量(M)",
dfsfreeblocks "剩余块数",
(dfsfreespace / dbftotalspace) 100 "空闲比例"
from (select ttablespace_name,
sum(tbytes) / 1024 / 1024 totalspace,
sum(tblocks) totalblocks
from dba_data_files t
group by ttablespace_name) dbf,
(select tttablespace_name,
sum(ttbytes) / 1024 / 1024 freespace,
sum(ttblocks) freeblocks
from dba_free_space tt
group by tttablespace_name) dfs
where trim(dbftablespace_name) = trim(dfstablespace_name)
方法二:
SELECT Totalname "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sysdba_free_space
group by tablespace_name
) Free,
(select bname, sum(bytes/1024/1024) TOTAL_SPACE
from sysv_$datafile a, sysv_$tablespace B
where ats# = bts#
group by bname
) Total
WHERE FreeTablespace_name = Totalname
当发现有的表空间不够的错误时,处理如下:
1:找出该表空间对应的数据文件及路径
select from dba_data_files t
where ttablespace_name = 'ARD'
2:增大数据文件
alter database datafile '全路径的数据文件名称' resize M
3:增加数据文件
alter tablespace 表空间名称
add datafile '全路径的数据文件名称' M
注解:表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G
SELECT tsegment_name,TO_CHAR(SUM(BYTES)/(10241024),'999G999D999') CNT_MB
FROM user_segments t
WHERE SEGMENT_TYPE LIKE 'TABLE%'
GROUP BY tsegment_name order by 2 desc;
可以通过以下语句查看所有的表空间大小:
sql:SELECT CTABLESPACE_NAME,ABYTES/1048576 MEGS_TOTAL,(ABYTES-BBYTES)/1048576 MEGS_USED,
BBYTES/1048576 MEGS_FREE,(ABYTES-BBYTES)/ABYTES 100 PCT_USED, BBYTES/ABYTES 100 PCT_FREE
FROM (SELECT TABLESPACE_NAME,SUM(ABYTES) BYTES,MIN(ABYTES) MINBYTES,MAX(ABYTES) MAXBYTES FROM SYSDBA_DATA_FILES A
GROUP BY TABLESPACE_NAME) A,(SELECT ATABLESPACE_NAME,NVL(SUM(BBYTES),0) BYTES
FROM SYSDBA_DATA_FILES A,SYSDBA_FREE_SPACE B WHERE ATABLESPACE_NAME = BTABLESPACE_NAME (+) AND AFILE_ID = BFILE_ID (+)
GROUP BY ATABLESPACE_NAME) B,SYSDBA_TABLESPACES C
WHERE ATABLESPACE_NAME = BTABLESPACE_NAME(+) AND ATABLESPACE_NAME = CTABLESPACE_NAME ORDER BY 6;
备注:如果是查询特定的可以在外面在嵌套一层select from(sql)t1 where t1TABLESPACE_NAME='表空间名称'的形式即可。
1、查看Oracle数据库中数据文件信息的工具方法:使用上面介绍过的方法登录oracle enterprise manager console工具,选择‘存储’ 数据文件,会看到如下的界面,该界面显示了数据文件名称,表空间名称,以兆为单位的数据文件大小,已使用的数据文件大小及数据文件利用率。
查某一用户下的表
select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||'M' from USER_extents where SEGMENT_TYPE='TABLE'group by SEGMENT_NAME,TABLESPACE_NAME
查所有的表
select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||'M' from dba_extents where SEGMENT_TYPE='TABLE'group by SEGMENT_NAME,TABLESPACE_NAME
现有数据量的大小,可以通过
dba_segments表内的bytes字段,这个不是完全正确, 不过基本来说还比较靠谱。
这个数据量是以字节为单位的。如果要查条数,那么就真的没有什么办法了,但是如果你每天都分析表,那么还可以在统计信息的表内查到,如果不是每天统计,那么基本就没有办法了。
以上就是关于如何查看oracle临时表空间当前使用了多少空间的大小全部的内容,包括:如何查看oracle临时表空间当前使用了多少空间的大小、如何查看oracle数据库中的表空间、oracle中查询表所在的表空间大小,并按照表数据占用表空间的大小排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)