本文主要介绍了数据库中表空间、段、区域和块的含义。很详细,有一定的参考价值。感兴趣的朋友一定要看!
一、数据区块的简介
数据块是甲骨文存储数据信息的最小单位。请注意,这是Oracle环境中最小的单元。Oracle使用数据块来屏蔽不同操作系统存储结构的差异。无论是它们的存储结构和方式,甚至是人物排列的方式。
Oracle对数据和空间分配的所有操作实际上都是对数据块的操作。我们从数据表中搜索一行。事实上,Oracle会从内存缓冲区(或硬盘)读取该行所在的数据块,然后返回数据块上的指定数据行。无论Oracle是在缓冲区还是在硬盘中,数据操作的小单位就是数据块。
参数
1、数据库块大小
数据块有大小,在建立数据库时由参数设置。一个数据块的大小可以支持一个数据库中的多个数据块,但一般意义不大,会给管理和调试带来一定的负担。
数据块的大小由kb字节数指定,默认情况下为8KB。相关参数是db_block_size。
设置数据块大小取决于不同类型的系统。如果数据块设置比较大,那么一次读取的数据行就比较多,相应的会消耗更多的SGA内存,具体查询导致的换入换出可能会比较多。如果设置太小,频繁的IO逻辑物理读取也会导致性能问题。
2、数据库文件多块读取计数
指示一次从物理存储中读取的数据块数。对于某些数据挖掘系统,可以考虑将该参数调整得稍微大一些。
第二,简介区
扩展区是比数据块大一级的存储结构,代表一系列连续的数据块集。
在存储数据信息时,Oracle会分配数据块进行存储,但不能保证所有分配的数据块都是连续的结构。因此出现了分区范围的概念,它代表了一系列连续的数据块集。
视图
查看dba _ extents(或all _ extents,user _ extents)是我们研究分区结构和存储结构的重要手段。
1.分区是特定于段的。数据段是分区的上层组织单位。数据库对象对应于一个段,而数据库对象属于不同的模式(所有者)。因此,通过不同的数据段名称、不同的所有者,甚至不同的表空间信息,您可以找到数据区范围的信息描述。
2.另一部分信息是关于该区域中的盘区的分配信息,例如文件号、起始数据块的块号和数据块的数量。
三.数据段的简介段
数据段对应于数据库对象。通常,数据库对象对应于一个数据段。多个范围对应一个数据段,每个数据段实际上代表数据库中的一个对象。
视图
从dba_segments视图中,我们可以清楚地看到数据段的结构。
1.从segment_type列中的注释信息,我们可以看到数据段的类型是多种多样的。数据表、索引、回滚和聚合都是数据段的形式。同时,数据段是在创建数据对象时创建的,随着对象卷的增加,不断分配多个盘区进行管理。
2.另一部分信息可以从dba_segments中读取,即数据对象的分配空间大小以及数据块和分区的数量。使用这个视图,您可以轻松获得指定模式的所有对象大小。
选择所有者,
总和(字节)/1024/1024作为体积,
总和(区块)为总区块,
总和(范围)作为总范围
nbsp; FROM DBA_SEGMENTS
GROUP BY OWNER
HAVING OWNER = 'SYS';
一个数据对象对应一个segment。但是,分区表的时候,一个分区要对应一个segment对象。还有就是,segment对象是可以指定存储在那个表空间里,实现存储划分的基础也就在于此。不同类型的segment划分建立在不同的表空间里,才有可能存放在不同的文件中,最后分布在不同的物理存储。
四、表空间tablespace
简介
TableSpace是存储结构中的最高层结构。建立一个表空间的时候,是需要指定存储的文件。一个表空间可以指定多个数据文件,多个文件可以在不同的物理存储上。但是有一点就是,表空间下一级对象数据段的存储,是不能指定存储在那个文件里的。所以,要想让数据对象访问IO负载均衡,需要指定不同的数据对象在不同的表空间里。这也就是为什么将数据表和索引建立在不同的表空间的原因。
视图
表空间通过v$tablespace进行访问。
数据文件通过v$datafile进行访问
以上是“数据库中表空间、段、区、块是什么意思”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/143761.html