8、union并不绝对比or的执行效率高

  我们前面已经谈到了在where子句中使用or会引起全表扫描,一般的,我所见过的资料都是推荐这里用union来代替or。事实证明,这种说法对于大部分都是适用的。

  select gid,fariqi,neibuyonghu,reader,title from Tgongwen

  where fariqi='2004-9-16' or gid>9990000

  用时:68秒。扫描计数 1,逻辑读 404008 次,物理读 283 次,预读 392163 次。

  select gid,fariqi,neibuyonghu,reader,title from Tgongwen

  where fariqi='2004-9-16'

  union

  select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid>9990000

  用时:9秒。扫描计数 8,逻辑读 67489 次,物理读 216 次,预读 7499 次。

  看来,用union在通常情况下比用or的效率要高的多。

  但经过试验,笔者发现如果or两边的查询列是一样的话,那么用union则反倒和用or的执行速度差很多,虽然这里union扫描的是索引,而or扫描的是全表。

  select gid,fariqi,neibuyonghu,reader,title from Tgongwen

  where fariqi='2004-9-16' or fariqi='2004-2-5'

  用时:6423毫秒。扫描计数 2,逻辑读 14726 次,物理读 1 次,预读 7176 次。

  select gid,fariqi,neibuyonghu,reader,title from Tgongwen

  where fariqi='2004-9-16'

  union

  select gid,fariqi,neibuyonghu,reader,title from Tgongwen

  where fariqi='2004-2-5'

  用时:11640毫秒。扫描计数 8,逻辑读 14806 次,物理读 108 次,预读 1144 次。

  9、字段提取要按照“需多少、提多少”的原则,避免“select *”

  我们来做一个试验:

  select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc

  用时:4673毫秒

  select top 10000 gid,fariqi,title from tgongwen order by gid desc

  用时:1376毫秒

  select top 10000 gid,fariqi from tgongwen order by gid desc

  用时:80毫秒

  由此看来,我们每少提取一个字段,数据的提取速度就会有相应的提升。提升的速度还要看您舍弃的字段的大小来判断。

文章出处:http://blog.csdn.net/cuizm/article/details/4498980

转载于:https://www.cnblogs.com/zrj531/archive/2012/02/22/2362745.html

sql server 海量数据速度提升:SQL优化-索引(9) 【转】相关推荐

  1. sql server 海量数据速度提升:SQL优化-索引(11) 【转】

    12.高效的TOP 事实上,在查询和提取超大容量的数据集时,影响数据库响应时间的最大因素不是数据查找,而是物理的I/0操作.如: select top 10 * from ( select top 1 ...

  2. sql server 海量数据速度提升:SQL优化-索引(7) 【转】

    介绍完SARG后,我们来总结一下使用SARG以及在实践中遇到的和某些资料上结论不同的经验: 1.Like语句是否属于SARG取决于所使用的通配符的类型 如:name like '张%' ,这就属于SA ...

  3. SQL server 系统优化--通过执行计划优化索引(1) (转)

    SQL server 系统优化--通过执行计划优化索引(1) 前几天,远离上海,到了温州,在客户的这边处理系统慢,该系统每天正常down机7次左右,在线人员一多,系统运行缓慢,严重影响业务操作,到了无 ...

  4. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )...

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

  5. 将一个基于磁盘的表迁移到SQL Server中的一个内存优化的表

    本文是微软的译文,对应的原文是:https://www.red-gate.com/simple-talk/sql/database-administration/migrating-disk-base ...

  6. SQL Server 性能调优3 之索引(Index)的维护

    SQL Server 性能调优3 之索引(Index)的维护 热度1 评论 16 作者:溪溪水草 SQL Server 性能调优3 之索引(Index)的维护 前言 前一篇的文章介绍了通过建立索引来提 ...

  7. php多表查询性能优化,MSSQL_SQL Server多表查询优化方案集锦,SQL Server多表查询的优化方案是 - phpStudy...

    SQL Server多表查询优化方案集锦 SQL Server多表查询的优化方案是本文我们主要要介绍的内容,本文我们给出了优化方案和具体的优化实例,接下来就让我们一起来了解一下这部分内容. 1.执行路 ...

  8. SQL Server 2016 查询存储性能优化小结

    SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...

  9. SQL Server 2014如何提升非在线的在线操作

    SQL Server 2014如何提升非在线的在线操作 原文:SQL Server 2014如何提升非在线的在线操作 在今天的文章里,我想谈下在线索引重建操作( Online Index Rebuil ...

最新文章

  1. Android App的启动过程
  2. 工业机器人发展现状:硬件制造大同小异,视觉感知绘新蓝图
  3. linux下的Tomact是什么
  4. 深入了解Java的SPI机制
  5. UE如何去除重复行,删除重复行
  6. 【工程项目经验】之C不定宏参数加颜色打印
  7. 断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布...
  8. BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
  9. TransE模型的简单介绍TransE模型的python代码实现
  10. 大数据处理的基本流程:数据抽取与集成+数据分析+数据解释
  11. C#编写一个控制台程序,输入一个日期,输出这一天是星期几。
  12. InstallShield Limited Edition Project下载及进行打包发布汇总
  13. tempo.js模板引擎:通过tempo将Json串填充到html页面中
  14. js将两张图片合成一张图片
  15. iphone UIImageWriteToSavedPhotosAlbum 保存图片
  16. 2021年汽车修理工(中级)考试题库及汽车修理工(中级)实操考试视频
  17. mc服务器语音,浸入式语音(Immersive Voice)|我的世界1.12.2版本
  18. python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)
  19. 我会把我的故事讲给你,亲爱的
  20. 计算机网络第六弹——应用层

热门文章

  1. 【许晓笛】 EOS 智能合约案例解析(2)
  2. 利用Underscore求数组的交集、并集和差集
  3. mapreduce shuffle过程问答
  4. JavaScript 正则表达式(RegExp对象、属性、方法、String支持)
  5. Tcp三次握手和四次挥手状态图
  6. 数据的PB级别是什么?
  7. 实际应用中带头节点的线性链表
  8. django存入mysql数据库_django如何存数据到一个mysql数据表里面
  9. 智能情绪分析技术_简单分析人工智能的表现在计算机网络应用技术中的优势
  10. 高德地图轨迹回放_高德地图上线了一个新功能….