`

Oracle 数据文件 实际使用量 计算说明

阅读更多

. 查看DB 实际使用磁盘数量

我们可以通过DBA_DATA_FILES这张表来查看整个表空间的大小。

SQL> desc dba_data_files;

Name Null? Type

----------------------------------------- -------- ----------------------------

FILE_NAME VARCHAR2(513)

FILE_ID NUMBER

TABLESPACE_NAME VARCHAR2(30)

BYTES NUMBER

BLOCKS NUMBER

STATUS VARCHAR2(9)

RELATIVE_FNO NUMBER

AUTOEXTENSIBLE VARCHAR2(3)

MAXBYTES NUMBER

MAXBLOCKS NUMBER

INCREMENT_BY NUMBER

USER_BYTES NUMBER

USER_BLOCKS NUMBER

ONLINE_STATUS VARCHAR2(7)

我们可以通过bytes字段和Blocks 字段来判断。

查看整个DB 表空间大小:

SQL> select sum(bytes)/1024/1024 "MB" from dba_data_files;

MB

----------

16790

从这里,我们可以说我们的数据库大小在17G所有。 即占用的空间。

查看整个DB 空闲空间量:

SQL> select sum(bytes)/1024/1024 "MB" from dba_free_space;

MB

----------

10872.5

所有表空间的空闲空间是10872.5MB

通过dba_data_files 不能直接得出使用量。实际数据量的计算需要用上面的2个值相减:16790-10872.5. 所以,我们DB 实际数据存储量在6G左右。

. 深入研究

2.1 dba_free_space

该表描述了数据库中所有表空间的空闲extents 在我的BLog

表空间(tableSpace) (segment) 盘区(extent) (block) 关系

http://blog.csdn.net/tianlesoftware/archive/2009/12/08/4962476.aspx

讲了segmentextent block的关系。 我们的数据文件对应segment segment 是由一些列extent组成。 每个extent又是由block组成。

所以通过dba_free_space 查询的结果,实际是表空间对应的每个extent的空闲量。

注意:

对于本地管理的表空间,当数据文件或者整个表空间offline dba_free_space 不会显示任何extent的信息。

SQL>create tablespace dave datafile '/u01/app/oracle/oradata/dave/dave01.dbf' size 50m;

SQL> select * from dba_free_space;

TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO

--------------- ---------- ---------- ---------- ---------- ------------

SYSTEM 1 17617 65536 8 1

SYSTEM 1 64641 16777216 2048 1

SYSTEM 1 66705 9306112 1136 1

UNDOTBS1 2 33 65536 8 2

UNDOTBS1 2 49 65536 8 2

UNDOTBS1 2 65 65536 8 2

UNDOTBS1 2 97 65536 8 2

UNDOTBS1 2 161 65536 8 2

UNDOTBS1 2 185 131072 16 2

UNDOTBS1 2 209 65536 8 2

UNDOTBS1 2 225 5570560 680 2

TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO

--------------- ---------- ---------- ---------- ---------- ------------

UNDOTBS1 2 1033 13303808 1624 2

UNDOTBS1 2 2665 1310720 160 2

UNDOTBS1 2 2953 29360128 3584 2

UNDOTBS1 2 6665 90177536 11008 2

UNDOTBS1 2 17801 71303168 8704 2

UNDOTBS1 2 26633 17760256 2168 2

UNDOTBS1 2 28809 5242880 640 2

UNDOTBS1 2 29577 4194304 512 2

UNDOTBS1 2 30217 70254592 8576 2

UNDOTBS1 2 38921 84869120 10360 2

USERS 4 57 4784128 584 4

TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO

--------------- ---------- ---------- ---------- ---------- ------------

DAVE 5 9 52363264 6392 5

23 rows selected.

SQL> alter database datafile 5 offline;

Database altered.

SQL> select * from dba_free_space;

TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO

--------------- ---------- ---------- ---------- ---------- ------------

SYSTEM 1 17617 65536 8 1

SYSTEM 1 64641 16777216 2048 1

SYSTEM 1 66705 9306112 1136 1

UNDOTBS1 2 33 65536 8 2

UNDOTBS1 2 49 65536 8 2

UNDOTBS1 2 65 65536 8 2

UNDOTBS1 2 97 65536 8 2

UNDOTBS1 2 161 65536 8 2

UNDOTBS1 2 185 131072 16 2

UNDOTBS1 2 209 65536 8 2

UNDOTBS1 2 225 5570560 680 2

TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO

--------------- ---------- ---------- ---------- ---------- ------------

UNDOTBS1 2 1033 13303808 1624 2

UNDOTBS1 2 2665 1310720 160 2

UNDOTBS1 2 2953 29360128 3584 2

UNDOTBS1 2 6665 90177536 11008 2

UNDOTBS1 2 17801 71303168 8704 2

UNDOTBS1 2 26633 17760256 2168 2

UNDOTBS1 2 28809 5242880 640 2

UNDOTBS1 2 29577 4194304 512 2

UNDOTBS1 2 30217 70254592 8576 2

UNDOTBS1 2 38921 84869120 10360 2

USERS 4 57 4784128 584 4

22 rows selected.

SQL>

offline 之后,就没有显示Dave 的相关信息了。

在上面的查询结果,我们看到UNDOTBS 有很多记录。 这个就是我们之前说的,dba_free_space 会显示表空间下所有extent 的空闲状况。 当表空间比较大时,这里的extent 的记录也就会很多。

dba_free_space 字段的含义:

Column

Datatype

Description

TABLESPACE_NAME

VARCHAR2(30)

Name of the tablespace containing the extent

FILE_ID

NUMBER

File identifier number of the file containing the extent

BLOCK_ID

NUMBER

Starting block number of the extent

每个extent 开始的block number

BYTES

NUMBER

Size of the extent (in bytes)

BLOCKS

NUMBER

Size of the extent (in Oracle blocks)

RELATIVE_FNO

NUMBER

Relative file number of the file containing the extent

--extent 管理的数据文件号

还有一点,就是这里的BYTES Blocks 是对应的关系 我们看一个具体的例子。 从上面的结果中拉一条记录过来:

TABLESPACE_NAME BYTES BLOCKS

--------------- ---------- ----------

UNDOTBS1 13303808 1624

BLOCKS 显示的该extent中空闲的block 数量。

BYTES 显示的是这些block对应的空间大小。

BYTES=BLOCKS*块的大小

SQL> show parameter db_block_size

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_block_size integer 8192

即每个块是8k

BYTES=BLOCKS*块的大小

1624*8*1024=13303808

2.2 dba_data_files

该表显示的是DB 所有数据文件的信息。是个整体概念。

Column

Datatype

NULL

Description

FILE_NAME

VARCHAR2(513)

Name of the database file

FILE_ID

NUMBER

NOT NULL

File identifier number of the database file

TABLESPACE_NAME

VARCHAR2(30)

NOT NULL

Name of the tablespace to which the file belongs

BYTES

NUMBER

Size of the file in bytes

BLOCKS

NUMBER

NOT NULL

Size of the file in Oracle blocks

STATUS

VARCHAR2(9)

File status: AVAILABLE or INVALID (INVALID means that the file number is not in use, for example, a file in a tablespace that was dropped)

RELATIVE_FNO

NUMBER

Relative file number

AUTOEXTENSIBLE

VARCHAR2(3)

Autoextensible indicator

MAXBYTES

NUMBER

Maximum file size in bytes

MAXBLOCKS

NUMBER

Maximum file size in blocks

INCREMENT_BY

NUMBER

Number of Oracle blocks used as autoextension increment

USER_BYTES

NUMBER

The size of the file available for user data. The actual size of the file minus the USER_BYTES value is used to store file related metadata.

USER_BLOCKS

NUMBER

Number of blocks which can be used by the data

ONLINE_STATUS

VARCHAR2(7)

Online status of the file:

SYSOFF

SYSTEM

OFFLINE

ONLINE

RECOVER

. 查看表空间使用率的一个SQL

SELECT D.TABLESPACE_NAME,

SPACE||'M' "SUM_SPACE(M)",

BLOCKS "SUM_BLOCKS",

SPACE - NVL (FREE_SPACE, 0)||'M' "USED_SPACE(M)",

ROUND( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2)||'%' "USED_RATE(%)",

FREE_SPACE||'M' "FREE_SPACE(M)"

FROM ( SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,

SUM (BLOCKS) BLOCKS

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME) D,

( SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

UNION ALL --如果有临时表空间

SELECT D.TABLESPACE_NAME,

SPACE||'M' "SUM_SPACE(M)",

BLOCKS SUM_BLOCKS,

USED_SPACE||'M' "USED_SPACE(M)",

ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2)||'%' "USED_RATE(%)",

NVL (FREE_SPACE, 0)||'M' "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(+)

ORDER BY 1;

---------------------------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977() DBA3 群:62697850()

DBA 超级群:63306533(); DBA4 群: 83829929 DBA5群: 142216823

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

分享到:
评论

相关推荐

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    Oracle11g从入门到精通2

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用...

    ORACLE9i_优化设计与系统调整

    §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §1.2.4 其它支持文件 26 §1.3 数据块、区间和段 28 §...

    Oracle11g从入门到精通

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    oracle动态性能表

     该视图中的数据也被用于监控系统资源使用情况,以及系统资源利用率的变化。正因如此多的性能数据,检查某区间内系统资源使用情况可以这样做,在一个时间段开始时创建一个视图数据快照,结束时再创建一个,二者之间...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

    Oracle9i备课笔记——吕海东

    5. 掌握Oracle9i Database Server的新特点及其在实际中的应用 6. 安装Oracle9i Database Server, Client及客户端常用工具TOAD7.5.2 授课内容: 1.1 作为软件开发人员,在当今就业市场上最应该掌握的技能: (1) ...

    oracle详解

    表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制...

    oracle-ERP表结构培训资料.doc

    所以在toad中无法查询到profile文件,所以查不到任何东西 同理还有很多相似的_ALL表和非ALL vi Oracle 模块数据结构 INV库存 使用库存项目管理库存项目或者所谓的库存项目(inventory item) 组织和物料 首先,讲组织...

    浅谈大数据及大数据分析.doc

    鉴于数据本 身的复杂性,由此得出的必然结果是,首选的大数据处理方法是在并行计算环境中使用 大规模并行处理(MPP),从而实现同时进行并行接收以及数据加载和分析。大多数大数 据在本质上是非结构化或半结构化数据...

    C#程序开发范例宝典(第2版).part08

    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...

    C#程序开发范例宝典(第2版).part13

    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...

    C#程序开发范例宝典(第2版).part02

    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...

    C#程序开发范例宝典(第2版).part12

    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...

Global site tag (gtag.js) - Google Analytics