• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle查看表空间的大小及使用率

Oracle查看表空间的大小及使用率

作者:okhymok的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-25

okhymok的博客通过本文主要向大家介绍了oracle增加表空间大小,oracle查询表空间大小,oracle修改表空间大小,oracle查看表空间大小,oracle 表空间大小等相关知识,希望本文的分享对您有所帮助

--1、查看表空间的名称及大小 
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
FROM dba_tablespaces t, dba_data_files d 
WHERE t.tablespace_name = d.tablespace_name 
GROUP BY t.tablespace_name; 
--2、查看表空间物理文件的名称及大小 
SELECT tablespace_name, 
file_id, 
file_name, 
round(bytes / (1024 * 1024), 0) total_space 
FROM dba_data_files 
ORDER BY tablespace_name; 
--3、查看回滚段名称及大小 
SELECT segment_name, 
tablespace_name, 
r.status, 
(initial_extent / 1024) initialextent, 
(next_extent / 1024) nextextent, 
max_extents, 
v.curext curextent 
FROM dba_rollback_segs r, v$rollstat v 
WHERE r.segment_id = v.usn(+) 
ORDER BY segment_name; 
--4、查看控制文件 
SELECT NAME FROM v$controlfile; 
--5、查看日志文件 
SELECT MEMBER FROM v$logfile; 
--6、查看表空间的使用情况 
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
FROM dba_free_space 
GROUP BY tablespace_name; 
SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name; 
--7、查看数据库库对象 
SELECT owner, object_type, status, COUNT(*) count# 
FROM all_objects 
GROUP BY owner, object_type, status; 
--8、查看数据库的版本  
SELECT version 
FROM product_component_version 
WHERE substr(product, 1, 6) = 'Oracle'; 
--9、查看数据库的创建日期和归档方式 
SELECT created, log_mode, log_mode FROM v$database; 


-----------------------------------------------------
--1G=1024MB 
--1M=1024KB 
--1K=1024Bytes 
--1M=11048576Bytes 
--1G=1024*11048576Bytes=11313741824Bytes 
SELECT a.tablespace_name "表空间名", 
total "表空间大小", 
free "表空间剩余大小", 
(total - free) "表空间使用大小", 
total / (1024 * 1024 * 1024) "表空间大小(G)", 
free / (1024 * 1024 * 1024) "表空间剩余大小(G)", 
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", 
round((total - free) / total, 4) * 100 "使用率 %" 
FROM (SELECT tablespace_name, SUM(bytes) free 
FROM dba_free_space 
GROUP BY tablespace_name) a, 
(SELECT tablespace_name, SUM(bytes) total 
FROM dba_data_files 
GROUP BY tablespace_name) b 
WHERE a.tablespace_name = b.tablespace_name 




------------------------------------------------------------------
数据库会存在temp表空间


查询temp表空间和使用情况时需要单独的脚本


select d.tablespace_name,
space "sum_space(m)",
blocks sum_blocks,
used_space "used_space(m)",
round(nvl(used_space, 0) / space * 100, 2) "used_rate(%)",
nvl(free_space, 0) "free_space(m)"
from (select tablespace_name,
round(sum(bytes) / (1024 * 1024), 2) space,
sum(blocks) blocks
from dba_temp_files
group by tablespace_name) d,
(select tablespace_name,
round(sum(bytes_used) / (1024 * 1024), 2) used_space,
round(sum(bytes_free) / (1024 * 1024), 2) free_space
from v$temp_space_header
group by tablespace_name) f
where d.tablespace_name = f.tablespace_name(+)


TABLESPACE_NAME sum_space(m) SUM_BLOCKS used_space(m) used_rate(%) free_space(m)


但这种情况并不能表示目前临时表空间的使用情况,比如某临时表空间已经使用了100%,该操作完毕后,临时表空间的HWM标志没有被回收,所以如果想知道当前的临时表空间使用,需要通过v$sort_usgae来确定:


select sum(blocks*8192)/1024/1024 from v$sort_usage;


临时表空间,请查询DBA_TEMP_FREE_SPACE


SELECT TABLESPACE_NAME, FREE_SPACE/1024/1024 AS "FREE SPACE(M)"
  FROM DBA_TEMP_FREE_SPACE
WHERE TABLESPACE_NAME = '&tablespace_name';


临时表空间,请查询DBA_TEMP_FILES
SELECT TABLESPACE_NAME, FILE_ID, FILE_NAME, BYTES/1024/1024 AS "SPACE(M)"
  FROM DBA_TEMP_FILES
WHERE TABLESPACE_NAME = '&tablespace_name';


为空间不足的表空间增加数据文件
ALTER TABLESPACE &tablespace_name ADD DATAFILE '&datafile_name' SIZE 2G;
注:如果要为临时表空间扩容,使用下面的语句
ALTER TABLESPACE &tablespace_name ADD TEMPFILE '&datafile_name' SIZE 2G;


也可以修改数据文件的大小


--------------------------------------------------
dba_data_files:数据库数据文件信息表。可以统计表空间大小(总空间大小)。


dba_free_space:可以统计剩余表空间大小。


增加表空间即向表空间增加数据文件,表空间大小就是数据文件总大小。


 


检查Oracle各个表空间的增长情况(各表空间使用率)  


select A.tablespace_name,(1-(A.total)/B.total)*100 used_percent from
(select tablespace_name,sum(bytes) total from dba_free_space group by tablespace_name) A,
(select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) B
where A.tablespace_name=B.tablespace_name

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle修改表空间大小的方法
  • oracle增加表空间大小两种实现方法
  • Oracle查看表空间的大小及使用率

相关文章

  • 2017-05-11全面解析Oracle Procedure 基本语法
  • 2017-05-11重新编译PLSQL中的无效对象或者指定的对象 的方法
  • 2017-05-11Oracle数据库中 call 和 exec的区别
  • 2017-05-11Hibernate Oracle sequence的使用技巧
  • 2017-05-11Oracle存储过程、包、方法使用总结(推荐)
  • 2017-08-25使用oracle 出现invalid uesr.table.column,table.column
  • 2017-05-11Oracle中如何把表和索引放在不同的表空间里
  • 2017-05-11oracle排名函数的使用方法分享
  • 2017-05-11linux下oracle设置开机自启动实现方法
  • 2017-05-11oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle 中XML处理函数介绍
    • oracle初始化参数设置
    • oracle中110个常用函数介绍
    • 基于Oracle的高性能动态SQL程序开发
    • Oracle中CONCAT,SUBSTR,REPLACE的实例介绍
    • Oracle 表三种连接方式使用介绍(sql优化)
    • oracle 分页 很棒的sql语句
    • ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享
    • Oracle数据库ORA 54013错误的解决办法
    • Oracle ORA 07445 evaopn2()+128错误问题的解决方案

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有