[网络课摘抄]5.2演示数据块整理(合并)的效果

1概念理解

由于对表空间进行频繁的DML操作,在空间的分配上势必会产生一些空间碎片影响系统效率。对磁盘碎片整理上可以使用的方法有重建表、move、shrink等。另一种情况是DELETE操作并不会回收HWM高水位线,ORACLE扫描表时依然是从第1个数据块扫描到HWM,当有新记录插入时,也是从HWM后开始插入,之前标记为删除的记录所占用的空间并没有释放,这不光影响了我们数据扫描的性能而且验证浪费了空间使用,下面我们就分别利用move\shrink两中技术来整理合并数据块。

2环境准备

创建一张表及索引:

3move回收碎片演示

对TEST表进行分析:

查看表的数据块占用:

查看索引的情况:

删除部分数据:

再分析一下TEST表并查询所占用的数据块:

从上图中可以发现当我们删除一部分数据后,再执行分的分析发现表所占用的数据块个数没有发生改变,这就说明那些被我们删除的数据所占用的空间并没有被释放。

现在执行表移动:

现在我们对进行一次分析:

如上图中,表移动后执行表分析发现报出ORA-20000错误,这是因为当我们执行表移动的时候,相应的表上的索引就失效,查看索引状态:

重建索引并查看状态:

现在再执行表分析查看表占用数据块情况:

从上图中可以看到TEST表占用的数据块变小了。

4shrink回收碎片演示

现在我们将使用shrink命令回收表空间,与move方法基本类似,我们将不再阐述,直接贴图:

再次分析查看数据块占用情况:

可以发现虽然经过分析后表占用的数据个数并没有改变。

从上图中可以发现当执行shrink命令后,TEST表占用的数据块个数据由1050变为870,TEST表上IDX_TEST索引没有受到影响,这说明我们执行shrink命令起到了效果。这里需要注意的是要与move命令表空间回收的区别:当表上有索引时,使用move命令回收表空间合并数据块时,相应表上的索引会失效,执行move命令后需要重建索引,这一点需要特别注意,而使用shrink命令回收表空间合并数据块时,则相应表上的索引将不会受到影响。

时间: 2024-10-06 08:16:51

[网络课摘抄]5.2演示数据块整理(合并)的效果的相关文章

[网络课摘抄]6.2示例演示数据压缩的效果

1概念理解 当系统的存储空间不足时或我们为了节省存储空间,一般都会想到数据压缩技术,在ORACLE系统中使用数据压缩技术不仅能够节省我们的存储空间,而且还会减少我们的内存占用.提高我们的I/O及查询速度.数据压缩技术常使用在OLAP系统中,我们知道通常OLAP系统一般数据量比较大,一次加载的数据量比较多,且多不存在DML操作,所以数据压缩比较适合OLAP系统,但需要注意的是数据压缩技术会消耗更多的时间和资料,特别是CUP资源. 压缩表实现可以从创建表时实现,也可以把一个已存在的表变为压缩表,下面

[网络课摘抄]5.1 PCTUSED和PCTFREE对数据操作的影响

1概念理解 首先PCTUSED和PCTFREE都是针对数据块的存储属性,单位都是%.其中PCTFREE决定了数据块什么时候从free list中移除,系统就不可以再往该数据块中插入数据,对于数据块中已有数据的更新可以使用数据块的保留空间(当update数据块时,剩余空间不足于满足update后的空间要求时,将会发生行迁移). PCTUSED决定了数据块什么时候被重新放置于free list中去,系统又可以往该块总插入数据(当insert数据到数据块时,剩余空间不满足insert 时的空间要求且重

[网络课摘抄]7 ASM文件系统

1.确认数据库版本 2.个人理解的存储解决方案的发展趋势 2.1图示说明 2.2图示描述 如上图我们描述了在不同时期的IT行业(数据库)出现的存储文件系统,下面我们将分别说明: ü  裸设备:所谓裸设备是指那些没有安装文件系统的一些存储设备,像比较老一点的IDE磁盘,到现在常用到的SCSI磁盘等,只要没有安装文件系统就属于裸设备:我们在使用裸设备的时候或者说数据库在使用裸设备的时候,必须为每一个文件单独创建一个裸设备,这种情况下对于数据的复制和备份很不方便,所以这种存储方案大多不被人们所接受.

[网络课摘抄]2.CKPT进程工作机制

CKPT进程工作示意图 2.CKPT进程工作机制 检查点进程被触发的条件为: a> 当发生日志组切换时: b>  用户提交了事务时(commit): c>  Redo log buffer容量达到总容量的1/3或1M时. d> 手动alter system checkpoint 的时候. e>  系统正常关闭时. f>  其他(如alter tablespace .. begin backup/end backup) 当一个检查点进程发生时(图中的2),首先系统会记录检

[网络课摘抄]3.利用logminer恢复delete误删除操作的数据

1环境准备 日志挖掘可以基于日志.基于时间.基于SCN分析,这里我们将演示一个基于SCN的分析案例. 开启补充日志功能(必须开始,否则不能捕获DML操作日志): 创建一张livan表,往里面插入了14条数据,如图: 2查看当前日志 3确认SCN删除测试表数据 查看当前SCN: 执行delete操作,删除了14条数据: 查看此时的SCN: 4 logminer加载日志文件并分析 加载日志文件: 开始日志挖掘: 5查询v$logmnr_contents视图 6结束日志挖掘 exec dbms_log

[网络课摘抄]4.演示一个导致ora-01555错误的场景

1创建一个undo表空间 2查看当前undo配置 3更该默认undo表空间 4确认更改的配置 5创建一张测试表 6模拟批量操作 7 查询2分钟前的数据 从这里可以到当查询2分钟前的数据时候,系统报出ORA-01555错误,提示我们快照太老.导致这种错误出现的原因是因为由于设置的回滚段太小且回滚段循环使用,在查询之前某个时刻数据状态时需要从回滚段中勾勒出数据的前映像,由于保存数据前映像的回滚段已经被覆盖,导致查询无法实现一致性读,查询失败,报出ORA-01555错误.

[网络课摘抄]1.DBA日常工作内容和职责

1.统计数据库总容量 按表空间分别统计: 总容量(单位为M): 2.计算用户下所有对象大小 3计算USERS表空间的大小 4计算该USERS表空间对象大小 -----------------------------------------------以下摘抄于网络----------------------------------------------- DBA 职责及日常工作职责: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需

[网络课摘抄]8.2模拟状态为inactive的日志损坏的恢复实验(完全恢复)

1查看当前日志状态 从这里可以看到我们现在有三组日志,每组日志中只有1个成员.为了演示这个实验,我们为每个组增加1个成员. 2为每组增加组成员 添加后我们验证一下目前各日志成员的状态: 从上面的视图中可以看到我们的日志组成员已经加到了我们的日志组中,增加到的日志成员为INVALID的状态. 3切换3组日志归档 查看此时日志状态: 可以发现此时日志组1和日志组2都是INACTIVE状态. 4删除INACTIVE状态日志 根据前面的确认,我们现在的日志组1和日志组2都是INACTIVE状态,现在我们

[网络课摘抄]8.1模拟控制文件丢失后的数据库恢复(完全恢复)

1.环境准备 1.1确认数据库版本 1.2确认数据库归档 1.3备份数据库文件 2模拟控制文件丢失后的数据库恢复(完全恢复). 2.1查看控制文件位置 2.2执行操作后删除控制文件 2.3启动数据库 启动数据库的时候发现数据库发生了报错,提示无法确认控制文件,检查告警文件,我们现在检查一下告警文件里的信息: 2.4重建控制文件 对于日志和数据文件都完整的情况下,如果只是控制文件丢失,那么重建控制文件是最好的一种解决方式,一般重建控制文件能够解决99%的问题,现在我们就重建控制文件. 2.5尝试打