解析Oracle数据扫描Oracle SQL查询优化
作者:网络转载 发布时间:[ 2013/2/27 10:13:22 ] 推荐标签:
之前我们讨论了在数据库中数据读取操作的类型,重点讨论了对数据读取操作大为有益的局部范围扫描的数据读取方式,同时还探讨了数据库优化器模式对于启用局部范围扫描的影响,以及启用局部范围扫描的前提下优化器设置的原则,之后我们通过探讨一个语句中查询条件的类别及其所起到的作用,并通过查询条件的类别和作用,得出了提升局部范围数据扫描的原则,即“局部范围扫描性能提升策略描述矩阵”。
接下来我们又分别讨论了7种引导优化器进行局部范围扫描的方法。通过这七种方法,其实我们探讨了如何引导控制优化器进行局部范围扫描的具体方法,以及如何通过局部范围扫描思想,来改进出现性能问题的SQL语句,从而提升语句执行性能的应用场景。
但是我们讨论了这么多的问题,却有一个问题始终没有明确给出,那是我们这种通过启用局部范围数据扫描来提升查询性能的方法,到底该在什么样的系统环境下使用呢?在这里我将会给出这个问题的答案,以作为这个系列的收官话题。
从系统应用模式来划分系统,大致可分为两大类,即联机事务处理系统OLTP和联机分析系统OLAP,针对这两种系统,我们上述探讨的原则所适用的系统是OLTP系统,但是这里的OLTP系统是一种具有鲜明特点的OLTP系统,正因为具备了这些特点,它表现出了与传统OLTP系统很多的不同方面。这些特点如下:
● 数据量巨大,有的甚至可以达到海量数据;
● 系统并发事务量巨大,每天通常会存在明显的业务高峰时段;
● 系统负载巨大,通常会有大量日常在线的业务操作用户;
● 系统极具重要性,通常都是7×24运转的系统,每天正常业务操作时间段内,通常不能容忍宕机、性能低下、响应性下降等不稳定状况;
● 是一个混合型的应用系统,不但存在大量传统OLTP中的短事务操作,而且还会伴有大型实时的综合查询、在线统计、在线数据分析等操作;
● 系统要求要具有很高的请求响应性和实时交互性,要求能够快速的从海量数据中定位业务操作所需要的少量数据,还要求能够快速的返回大型查询和大型统计分析的结果集;
● 系统要求整体资源消耗要达到平衡,不能因为几个大型的耗时操作,而影响日常的短事务业务操作;
这些特点其实归结起来一句话,那是这种系统要求在具备了与OLAP或者DSS系统同等规模数据量的前提下,要达到OLTP系统的响应性和实时交互性。
由此可见根据前面各部分问题的讨论,我们可以知道实现上述系统要求,正是局部范围数据扫描的特长所在,灵活运用局部范围扫描思想,来解决这些系统运行时的现实问题满足上述系统要求,那真可谓是对症下药。
目前具备上述特点的系统存在很多,而且可以预见在不远的未来会越来越多(具体原因在此不探讨了,想必大家稍加思索会明白)。那么掌握这种利用局部范围数据扫描来提升数据处理性能的技术,更显得尤为重要,好要将这项技术从技术手段变成我们信手拈来的个人能力。
后在这即将结束本系列问题讨论之际,本人说一些题外话。该系列之前已经先后发表了9个部分,这段时间发现有很多朋友进行引用或转载,对此我非常高兴和欢迎,但本人在此由衷希望,引用本系列文章的朋友要有绅士风度,同时秉承实事求是的原则,引用或转载本系列文章时请注明来源或者出处。在此本人奉上由衷的感激。同时本人也坚决的反对和鄙视盗用和不注明来源的引用本系列文章。好了到此结束吧,后本人十分欢迎与志同道合的朋友一起探讨技术,一起分享知识和成果。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11