解析Oracle数据扫描 Oracle SQL查询优化 总结篇

发表于:2013-2-27 09:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:javacoffe    来源:51Testing软件测试网采编

  之前我们讨论了在数据库中数据读取操作的类型,重点讨论了对数据读取操作大为有益的局部范围扫描的数据读取方式,同时还探讨了数据库优化器模式对于启用局部范围扫描的影响,以及启用局部范围扫描的前提下优化器设置的原则,之后我们通过探讨一个语句中查询条件的类别及其所起到的作用,并通过查询条件的类别和作用,得出了提升局部范围数据扫描的原则,即“局部范围扫描性能提升策略描述矩阵”。

  接下来我们又分别讨论了7种引导优化器进行局部范围扫描的方法。通过这七种方法,其实我们探讨了如何引导控制优化器进行局部范围扫描的具体方法,以及如何通过局部范围扫描思想,来改进出现性能问题的SQL语句,从而提升语句执行性能的应用场景。

  但是我们讨论了这么多的问题,却有一个问题始终没有明确给出,那就是我们这种通过启用局部范围数据扫描来提升查询性能的方法,到底该在什么样的系统环境下使用呢?在这里我将会给出这个问题的答案,以作为这个系列的收官话题。

  从系统应用模式来划分系统,大致可分为两大类,即联机事务处理系统OLTP和联机分析系统OLAP,针对这两种系统,我们上述探讨的原则所适用的系统是OLTP系统,但是这里的OLTP系统是一种具有鲜明特点的OLTP系统,正因为具备了这些特点,它表现出了与传统OLTP系统很多的不同方面。这些特点如下:

  ● 数据量巨大,有的甚至可以达到海量数据;

  ● 系统并发事务量巨大,每天通常会存在明显的业务高峰时段;

  ● 系统负载巨大,通常会有大量日常在线的业务操作用户;

  ● 系统极具重要性,通常都是7×24运转的系统,每天正常业务操作时间段内,通常不能容忍宕机、性能低下、响应性下降等不稳定状况;

  ● 是一个混合型的应用系统,不但存在大量传统OLTP中的短事务操作,而且还会伴有大型实时的综合查询、在线统计、在线数据分析等操作;

  ● 系统要求要具有很高的请求响应性和实时交互性,要求能够快速的从海量数据中定位业务操作所需要的少量数据,还要求能够快速的返回大型查询和大型统计分析的结果集;

  ● 系统要求整体资源消耗要达到平衡,不能因为几个大型的耗时操作,而影响日常的短事务业务操作;

  这些特点其实归结起来一句话,那就是这种系统要求在具备了与OLAP或者DSS系统同等规模数据量的前提下,要达到OLTP系统的响应性和实时交互性。

  由此可见根据前面各部分问题的讨论,我们可以知道实现上述系统要求,正是局部范围数据扫描的特长所在,灵活运用局部范围扫描思想,来解决这些系统运行时的现实问题满足上述系统要求,那真可谓是对症下药。

  目前具备上述特点的系统存在很多,而且可以预见在不远的未来会越来越多(具体原因在此就不探讨了,想必大家稍加思索就会明白)。那么掌握这种利用局部范围数据扫描来提升数据处理性能的技术,更显得尤为重要,最好要将这项技术从技术手段变成我们信手拈来的个人能力。

  最后在这即将结束本系列问题讨论之际,本人说一些题外话。该系列之前已经先后发表了9个部分,这段时间发现有很多朋友进行引用或转载,对此我非常高兴和欢迎,但本人在此由衷希望,引用本系列文章的朋友要有绅士风度,同时秉承实事求是的原则,引用或转载本系列文章时请注明来源或者出处。在此本人奉上由衷的感激。同时本人也坚决的反对和鄙视盗用和不注明来源的引用本系列文章。好了到此结束吧,最后本人十分欢迎与志同道合的朋友一起探讨技术,一起分享知识和成果。

相关链接:

解析Oracle数据扫描 Oracle SQL优化 引导局部范围数据扫描的方法(1)

解析Oracle数据扫描 Oracle SQL优化 引导局部范围数据扫描的方法(2)

解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(3)

解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(4)

解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(5)

解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(6)

解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(7)

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号