`

多表条件查询的性能优化

    博客分类:
  • SQL
阅读更多
多表条件查询的性能优化
sql1: select b.*,a.* from a,b where a.alt = b.alt and a.materialbill = b.mat and a.mtl = 'B01AE50131B3000AE' 

sql2: select b.*,a.* from a,(select alt,mat from b where mtlno = 'B01') b where a.alt = b.alt and a.mat = b.mat

大家写多表查询的时候可能经常会写成sql1的语句,虽然sql1和sql2所完成的结果是一致的不过效率上来讲sql2更高效。
下面是笔者对于sql1,和sql2执行效率的对比(在同环境中的100次执行 80%以上的情况下 sql1的执行时间是大于sql2的)
程序运行时间 sql1: 60642295ns
程序运行时间 sql2: 38701910ns

程序运行时间 sql1: 48397951ns
程序运行时间 sql2: 46428006ns

程序运行时间 sql1: 46488642ns
程序运行时间 sql2: 31040653ns

程序运行时间 sql1: 35065875ns
程序运行时间 sql2: 31788246ns

程序运行时间 sql1: 35922433ns
程序运行时间 sql2: 31519137ns

程序运行时间 sql1: 34986580ns
程序运行时间 sql2: 32410407ns

程序运行时间 sql1: 35279593ns
程序运行时间 sql2: 31643322ns

程序运行时间 sql1: 33958278ns
程序运行时间 sql2: 31290219ns

程序运行时间 sql1: 34027940ns
程序运行时间 sql2: 31123665ns

程序运行时间 sql1: 34309302ns
程序运行时间 sql2: 31402426ns

程序运行时间 sql1: 34546235ns
程序运行时间 sql2: 31409009ns

程序运行时间 sql1: 34160856ns
程序运行时间 sql2: 31276024ns

通过上面的结果可以看出sql2的执行效率更高效,当然如果只是有限的数据量这种性能可以忽略
分享到:
评论

相关推荐

    EBS性能调优之全面挖掘_V4.2(ebs性能优化、oracle性能优化、linux性能优化)

    数据库优化包括:实例的性能优化和SQL语句的性能优化,实例优化和sql优化均可以通过AWR报告来分析并作出优化方案。 这篇文档描述了如何调查EBS系统性能下降原因、如何使用和理解AWR报告、分别阐述了数据库层/应用层/...

    SQL查询安全性及性能优化

    执行多表联接逻辑操作,嵌套循环联接通常使用索引在内部表中搜索外部表的每一行 从列中指定的非聚集索引中扫描所有行 利用索引的查找功能从非聚集索引中检索行 扫描和查找 聚集索引有扫描和查找 非聚集索引...

    Oracle Sql 性能优化

    Oracle Sql性能优化 解宝喆 1、选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在...

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQLServer2008查询性能优化 1/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQL性能优化

    1 性能优化 1.1 避免频繁 commit,尤其是把 commit 写在循环体中每次循环都进行commit。 1.2 使用绑定变量,避免常量的直接引用。 示例:以下书写不符合本规范。 INSERT INTO sm_users (user_id, user_name, ...

    ORACLE_SQL性能优化

    ORACLE_SQL性能优化 1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句...

    性能优化方法论,优化思想:增加资源、减少耗时操作(合并、压缩、复用等)、提高资源利用率(空间换时间、同步转异步等)等

    性能优化方法论,优化思想:增加资源、减少耗时操作(合并、压缩、复用等)、提高资源利用率(空间换时间、同步转异步、串行转并行、降低冲突范围、空间局部性等)、其他(提前处理、实时转离线、就近原则、限制条件等...

    基于混合模型的缓冲器性能优化分析

    以规律化流场特性作为缓冲器优化设计的新思路,研究切向进口缓冲器及径向进口缓冲器在压缩机不同出口压力条件下对压力波动的减弱效果。做5组压缩机不同进出口压力的实验,运用Fluent建立缓冲器及相关接管模型,根据实验...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    第15章 RAC稳定性与性能优化 15.1服务器硬件 15.1.1 Firmware固件升级 15.1.2硬件设备兼容性 15.1.3 FC HBA卡冗余 15.1.4 Infiniband技术 15.1.5 RAC硬件结构案例 15.2操作系统 15.2.1认证操作系统 15.2.2...

    Oracle企业DBA性能优化

    数据库优化的最好方法是认真设计系统和应用程序性能提高主要是通过优化 应用程序获得的 如果满足下列条件则您的系统很少会出现性能问题 ...比原来提高了您就可能需要认真考虑提高性能优化过程进行得越晚它耗……

    sql性能优化

     b 直接修改后台 根据输入条件 先查出符合条件的供应商 并把相关记录保存在一个临时表里头 然后再用临时表去做复杂关联">主要描述了sql上的性能优化操作 eg:  1 查询的模糊匹配  尽量避免在一个复杂查询里面...

    矿用自卸车车架动态性能优化

    为解决矿用自卸车车架存在结构强度小,质量大的问题,对矿用自卸车车架结构进行动态性能优化。利用ANSYS软件的APLD语言建立车架结构的参数化模型,通过模态分析,确定影响车架动态性能的关键固有频率。以车架自重为优化...

    oracle SQL性能优化

    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. (3) SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的...

    Java性能优化

    Java性能优化: 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控制资源的使用,通过线程同步...

    SQL Server数据库查询速度慢原因及优化方法

    ●可以通过以下方法来优化查询 : 1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要。 2、纵向、横向分割表,减少...

    ORACLE SQL性能优化系列

    ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描. b. 通过ROWID访问表 你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)...

    Oracle数据库设计开发阶段性能优化

    Oracle是目前使用最为广泛...通过对其逻辑存储结构和物理存储结构设计进行优化,使之在满足需求条件下,时空开销性能最佳,可以解决数据库系统运行过程中性能的渐进性下降或性能突降等问题,以保证系统运行的优良性能。

    弹簧结构与性能参数的多目标优化设计

    将其转化为单目标优化问题,综合运用机械优化设计理论及方法,通过分析弹簧优化设计的设计变量、目标函数和约束条件,建立起以弹簧的结构重量、自由高度及防共振性能为目标函数的多目标优化设计数学模型,并通过MATLAB...

Global site tag (gtag.js) - Google Analytics