mysql sqlserver效率比较_mysql sqlserver or和union 执行效率比较

本文通过实验对比了在SQLSERVER 2008 R2环境下,无索引的数据表中OR和UNION查询操作的效率。测试结果显示,在这种情况下,OR查询的逻辑读取次数少于UNION,因此在效率上OR优于UNION。
摘要由CSDN通过智能技术生成

摘要:

下文将通过对实际表进行查询测试,得出or和union的效率分析,如下所示:

实验环境:sqlserver 2008 R2

数据表:

[20180627Tmp]

无任何索引

拥有1041175行数据

——————————————-

sql脚本 or写法:

set statistics io on

DBCC DROPCLEANBUFFERS ---清理缓存

select testZiDuan from [20180627Tmp]

where testZiDuan ='3E6A5407-E5FF-4F7D-9723-FF10CC950D8C'

or

testZiDuan ='A1B1681A-076D-453E-80DE-D8FF7575EC8B'

go

———————涉及IO————————–

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

(2 行受影响)

表 ‘20180627Tmp’。扫描计数 9,逻辑读取 50333 次,物理读取 2774 次,预读 50333 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(1 行受影响)

——————-执行计划—————————

8651b5b418b004d8893aed656db378c2.png

mssql_sqlserver_or关键字执行计划

sql脚本union写法:

DBCC DROPCLEANBUFFERS ---清理缓存

select testZiDuan from [20180627Tmp]

where testZiDuan ='3E6A5407-E5FF-4F7D-9723-FF10CC950D8C'

union

select testZiDuan from [20180627Tmp]

where testZiDuan ='A1B1681A-076D-453E-80DE-D8FF7575EC8B'

———————涉及IO————————–

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

(2 行受影响)

表 ‘20180627Tmp’。扫描计数 18,逻辑读取 100666 次,物理读取 2690 次,预读 50333 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(1 行受影响)

——————-执行计划—————————

c3553934d3c6d266108d9c9b5b8a0951.png

mssql_sqlserver_union关键字执行计划

44a02015132d4622227be9b5bb24e435.png

mssql_sqlserver_union关键字执行计划-2

or union无索引情况下,查询效率总结:

在上述数据查询中,or关键字同union关键字运行耗时一致;

———————————————————————

再涉及的逻辑读取union 因为涉及两次查询操作,所以逻辑读数:union关键字是or关键字的两倍,所以针对上述操作or关键字效率高于union。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值