千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 表空间是什么

表空间是什么

来源:千锋教育
发布人:xqq
时间: 2023-12-04 20:04:07 1701691447

表空间是什么?表空间是数据库的一种逻辑结构,它在物理上对应着一个或多个数据文件。平常所讲的表空间管理实际上指的是对表空间所对应的数据文件的空间管理。

Oracle支持两种管理方式,一种是字典管理(简称DMT),一种是本地管理(简称LMT)。这里所说的管理方式是指针对extent的管理方式。

extent也是数据库的一种逻辑结构,它包含一定数量的、连续的Oracle块。它是Oracle的空间分配的最小单位。针对它的管理方式就是指表空间中的extent是如何被管理的(记录extent的free、used使用情况)。

在这两种管理方式中,字典管理方式是Oracle遗留的一种空间管理方式,它采用数据字典表UET$、FET$来记录表空间中extent的使用情况。

每次进行涉及空间管理的操作时,都必须对这两个表进行维护,其影响是显而易见的。当并发提高时,该表上的争用将无法避免被提高,同时将产生大量的undo占用大量系统回滚段,而且在字典管理方式下将产生令人头痛的碎片问题。

本地管理方式是从Oracle 8i开始支持的一种管理方式,也是目前Oracle强烈建议采用的一种方式。它不再利用数据字典表来记录空间使用情况,取而代之的是在数据文件头部增加一个位图区,用位图来记录空间的使用情况,每一个bit都代表着一个extent的使用情况。

数据库中如果不存在dmt类型的表空间,则UET$和FET$中不再有信息。

表空间本身是和SQL语句运行效率相关的,主要包括以下几个方面:

对于DML语句来说,如果涉及空间的扩展,需要有个分配的过程此时,给用户的体验就是SQL执行速度很慢。

从Oracle 10g开始,引入了一个等待事件“data fileinit write”来表示表空间扩展时发生的等待。为Oracle需要将系统块格式化为Oracle数据块,然后才能提供数据库使用。常见的优化策略是在大规模的DML操作之前提前预分配空间的,这样可避免临时的空间扩展导致的效率低下。

对于排序等操作,如果空间消耗较大,需要用到TEMP表空间。如果TEMP空间不足,会导致SQL语句执行失败。因此,对于TEMP表空间的使用要进行监控,对于耗费TEMP较大的SQL需要重点关注,并进行重点优化。

tags: IT培训
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT