1. 0. 尝试在合适的场景下,用 Charindex()函数代替 like,或者全文索引进行 内容搜寻。%like%不走索引,'like%'后百分号可以走索引。
  2.  
  3. 1.
    调整不良SQL通常可以从以下几点切入:
    ? 检查不良的SQL,考虑其写法是否还有可优化内容
    ? 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写
    ? 检查优化索引的使用
    ? 考虑数据库的优化器
  4.  
  5. 2. 避免出现SELECT * FROM table 语句,要明确查出的字段
  6.  
  7. 3. 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移
  8.  
  9. 4. 查询时尽可能使用索引覆盖。即对SELECT的字段建立复合索引,这样查询时只进行索引扫描,不读取数据块。
  10.  
  11. 5. 在判断有无符合条件的记录时建议不要用SELECT COUNT (*)和select top 1 语句。
  12.  
  13. 6. 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量。
  14.  
  15. 7. 应绝对避免在order by子句中使用表达式。
  16.  
  17. 8. 如果需要从关联表读数据,关联的表一般不要超过7个。
  18.  
  19. 9. 小心使用 IN OR,需要注意In集合中的数据量。建议集合中的数据不超过个。
  20.  
  21. 10. >用>=代替,<用<=代替,这样可以有效的利用索引。
  22.  
  23. 11. 在查询时尽量减少对多余数据的读取包括多余的列与多余的行。
  24.  
  25. 12. 对于复合索引要注意,例如在建立复合索引时列的顺序是F1F2F3,则在whereorder by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,且必须包含第一列。
  26.  
  27. 15. WHERE 子句中,避免对列的四则运算,特别是where 条件的左边,严禁使用运算与函数对列进行处理。比如有些地方 substring 可以用like代替
  28.  
  29. 16. 如果在语句中有not inin)操作,应考虑用not existsexists)来重写,最好的办法是使用外连接实现。
  30.  
  31. 18. 请小心不要对过多的列使用列函数和order by,group by等,谨慎使用disti软件开发
  32.  
  33. 19. union all 代替 union,数据库执行union操作,首先先分别执行union两端的查询,将其放在临时表中,然后在对其进行排序,过滤重复的记录。
    当已知的业务逻辑决定query Aquery B中不会有重复记录时,应该用union all代替union,以提高查询效率。
  34.  
  35. 数据更新的效率
    1. 在一个事物中,对同一个表的多个insert语句应该集中在一起执行
    2. 在一个业务过程中,尽量的使insert,update,delete语句在业务结束前执行,以减少死锁的可能性。
  1. INNER JOIN 等价于 JOIN
    你可以理解为 JOIN    INNER JOIN 的缩写。
  2.  
  3. LEFT JOIN 等价于 LEFT OUTER JOIN
    RIGHT JOIN 等价于 RIGHT OUTER JOIN

Sql优化-必劳记!的更多相关文章

  1. 记一次SQL优化

    常见的SQL优化 一.查询优化 1.避免全表扫描 模糊查询前后加%也属于全表扫描 在where子句中对字段进行表达式操作会导致引擎放弃使用索引而进行全表扫描,如: select id from t w ...

  2. 提高SQL查询效率(SQL优化)

    要提高SQL查询效率where语句条件的先后次序应如何写 http://blog.csdn.net/sforiz/article/details/5345359   我们要做到不但会写SQL,还要做到 ...

  3. sql优化(oracle)

    系统优化中很重要的方面是SQL语句的优化,对于海量数据,优质的SQL能够有效的提高系统的可用性. 总结的有点罗嗦,列个简单的目录啦~ 目录 第一部分知识准备                      ...

  4. sql优化的50中方法

    查询速度慢的原因很多,常见如下几种:    1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)    2.I/O吞吐量小,形成了瓶颈效应.    3.没有创建计算列导致查询不优化 ...

  5. sql优化--in和exists效率

    系统要求进行SQL优化,对效率比较低的SQL进行优化,使其运行效率更高,其中要求对SQL中的部分in/not in修改为exists/not exists 修改方法如下: in的SQL语句 SELEC ...

  6. 浅谈sql优化

    问题的发现:      菜鸟D在工作的时候发现项目的sql语句很怪,例如 : select a.L_ZTBH, a.D_RQ, a.VC_BKDM, (select t.vc_name from tb ...

  7. 浅谈SQL优化入门:2、等值连接和EXPLAIN(MySQL)

    1.等值连接:显性连接和隐性连接 在<MySQL必知必会>中对于等值连接有提到两种方式,第一种是直接在WHERE子句中规定如何关联即可,那么第二种则是使用INNER JOIN关键字.如下例 ...

  8. 一次非常有趣的 SQL 优化经历

    阅读本文大概需要 6 分钟. 前言 在网上刷到一篇数据库优化的文章,自己也来研究一波. 场景 数据库版本:5.7.25 ,运行在虚拟机中. 课程表 #课程表 create table Course( ...

  9. SQL 优化经历

    一次非常有趣的 SQL 优化经历   阅读本文大概需要 6 分钟. 前言 在网上刷到一篇数据库优化的文章,自己也来研究一波. 场景 数据库版本:5.7.25 ,运行在虚拟机中. 课程表 #课程表 cr ...

随机推荐

  1. Spring bean注解配置(1)

    Spring自带的@Component注解及扩展@Repository.@Service.@Controller,如图 在使用注解方式配置bean时,需要引进一个包: 使用方法: 1.为需要使用注解方 ...

  2. IO模式调查利器blkiomon介绍

    本文链接地址: IO模式调查利器blkiomon介绍 blkiomon 是blktrace工具包带的一个方便用户了解IO情况的工具, 由于blktrace太专业,需要了解的IO协议栈的东西太多,blk ...

  3. 使用promise对象封装一个ajaxGet函数

    function promiseAjax(url,data){        var pro = new Promise(function(success,failed){           承诺一 ...

  4. Jenkins邮件扩展(Email Extension插件 Windows环境)

    1.Jenkins ver. 2.107.3版本自带Email Extension插件启动后即可看到系统设置里的 Extended E-mail Notification ,如果没有请安装 2.安装过 ...

  5. shutil模块---文件,文件夹复制、删除、压缩等处理

    shutil模块:高级的文件,文件夹,压缩包处理 拷贝内容 # shutil.copyfileobj(open('example.ini','r'),open('example.new','w')) ...

  6. 内建函数(builtins)和functools

    内建函数 Build-in Function,启动python解释器,输入dir(__builtins__), 可以看到很多python解释器启动后默认加载的属性和函数,这些函数称之为内建函数, 这些 ...

  7. etcd查看key-value

    get/set key-value etcdctl get/set /key-path etcdctl watch --recursive /test/sm/default/apps 查看所有key- ...

  8. zabbix 主动模式监控

    参考网站:  http://www.mamicode.com/info-detail-1724685.html http://www.cnblogs.com/dadonggg/p/8609674.ht ...

  9. java ee7 配置文件

    java ee7 配置文件 1. 项目目录 # ee pom.xml      Maven构建文件 /src/main/java      Java源文件 /src/main/resource     ...

  10. ADO 读写文本文件

    ' 创建配置文件            Open ThisWorkbook.Path & "\schema.ini" For Append As #1            ...