多表条件查询的性能优化

多表条件查询的性能优化

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的执行效率更高效,当然如果只是有限的数据量这种性能可以忽略
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值