ORACLE高水位线的测试

简介: 说明:本文档介绍高水位线在大量删除后对全表扫描的影响,及通过ORACLE收缩的功能回收高水位线;  测试的环境: ORACLE 版本:11.2.

说明:本文档介绍高水位线在大量删除后对全表扫描的影响,及通过ORACLE收缩的功能回收高水位线;

 

测试的环境:

ORACLE 版本:11.2.0.3

测试的表名:JOHN1

为了便于测试,段的管理方式为UNIFORM SIZE 1M

 

测试的方法:

1、创建一个表,然后插入大量的数据,记录进行全表扫描的时间;通过autotrace的方法进行测试

2、删除表中的数据,然后测试全表扫描的时间;

3、进行表的收缩工作,检查全表扫描的时间

 

测试:

1、创建表JOHN1,并插入大量的数据;

 

2、该表分配的段情况

脚本:select  EXTENT_ID,BLOCKS from dba_extents where segment_name='JOHN1';

可以计算当前表占用的空间为69M(分配69个区,每个1M)

 

3、测试前准备工作

set timing on;                                             打开计时功能; 

set autotrace on;                                        打开trace;

alter system flush shared_pool ;               清除shared_pool避免干扰 

alter system flush BUFFER_CACHE ;          清除buffer_cache避免干扰

 

4、未删除数据前的全表扫描测试

 

5、删除该表的所有数据

delete from datachk.john1;

 

6、删除后全表扫描的测试(先清除BUFFER的数据)

虽然表已经没有数据了,但是物理读和删除之前是一样的,执行计划显示需要的时间也是一样的;

 

7、进行表的收缩工作;

1)打开表的行迁移

脚本: alter table  datachk.john1 enable row movement ;

 

2)进行表的收缩,高水位的回收

脚本:alter table  datachk.john1 shrink space;

 

8、收缩后的全表扫描测试;

通过收缩后,发现执行计划的物理读数量有了明显的下降,执行的时间也有了明显的提升;

 

9、再次对该表区空间的分配

 

总结:表的收缩工作一般都是在进行大量的数据删除之后需要进行的,但是在日常的业务中其实很少会有这样大量的删除工作,在特殊的系统和特殊的业务情景下可能会需要这样的操作。

个人工作的工作中两次的回收高水位线的操作:

1、接口的系统对象的收缩工作(曾经遇到的一个场景是原来的接口数据需要保留30天,后面由于空间的关系只保留7天,通过程序进行删除之后,发现表空间并没有释放出来,后来通过语句查找可以进行回收的对象,然后进行了shrink操作后,空间得到释放,也间接提升了效率)

2、业务系统的数据结转工作(业务系统运行3年以后,系统就会运行缓慢,很多公司采取的方法就是进行结转,然后删除2年之前的数据,如果删除完就算结束后会发现其实性能并没有明显的提升,就像我们测试的如果没有进行shrink操作,高水位线其实是没有下降的,在做一些查询工作的时候,性能也就不会有明显的提升)

 

............................................................................................................................................................................................................................本文作者:JOHN

ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 )  

...........................................................................................................................................................................................................................

相关文章
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
834 1
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
366 1
|
Oracle 关系型数据库 MySQL
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
|
监控 Oracle 关系型数据库
关系型数据库Oracle恢复测试
【7月更文挑战第20天】
427 7
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
212 3
|
SQL Oracle 关系型数据库
docker快速部署oracle19c、oracle12c,测试环境问题复现demo快速搭建笔记
docker快速部署oracle19c、oracle12c,测试环境问题复现demo快速搭建笔记
3739 0
|
人工智能 运维 Oracle
ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下(文末投票)
ChatGPT已经通过了很多考试,姚远老师是Oracle OCP和MySQL OCP讲师,我很好奇ChatGPT能不能通过Oracle OCP的考试呢?让我们拿Oracle 19c OCP考试(1z0-082)的真题对ChatGPT进行一个测试。
322 0
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
11月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1455 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1936 24

推荐镜像

更多