如何查看oracle临时表空间当前使用了多少空间的大小

如何查看oracle临时表空间当前使用了多少空间的大小,第1张

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中查询表所在的表空间大小,并按照表数据占用表空间的大小排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9448301.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存