zoukankan      html  css  js  c++  java
  • SQL性能学习汇总 00

     1 1.在一条语句中不要重复使用相同的函数
     2 2.尽可能在存储过程中使用临时变量和临时表
     3IF (Object_ID('tempdb..#T') IS NOT NULL) DROP TABLE #T
     4           SELECTINTO #T FROM 5        DROP TABLE #T ;
     6 3.当用SELECT INTO时,它会锁住系统表(SYSOBJECTS,SYSINDEXES等等),
     7 阻碍其他连接的存取。所以在创建临时表时应该用显示申明语句,
     8 即不在事务内使用SELECT INTO语句。
     9         select into  #T  .......
    10         Begin tran
    11           update  #T .......
    12         end  tran
    13 4.存储过程中涉及更改数据时一定要使用try  catch  事务  回滚等
    14 5.SELECT子句中避免使用'*'   尽可能的写出需要查询的字段名
    15 6.条件中尽量少用否定类型的运算符,条件中尽量少用
    16 '<>', '!=''NOT IN', 'NOT EXISTS''NOT LIKE'等否定类型的运算符,
    17 因为它们不走索引全是表扫描  效率高低比较EXISTS > IN > NOT EXISTS > NOT IN,
    18 所以可用EXISTS代替IN的使用, NOT EXISTS或(OUTER JOIN)代替NOT IN的使用。
    19 7.在WHERE条件中IN后的值排序为先繁后少,减少判断次数
    20 8.避免在索引列上使用IS NULLIS NOT NULL。NULL条件将使该索引无法作用。
    21 9.尽可能不在条件中使用函数
    22 10.用'>=''<='替代'>','<' 
    23     示例(不推荐)
    24         SELECT EmpNO 
    25         FROM  EMP 
    26         WHERE DeptNO > 3;
    27     示例(推荐)
    28         SELECT  EmpNO 
    29         FROM  EMP 
    30         WHERE DeptNO >= 4;  
    31         两者区别在于,前者DBMS将直接跳到Dept等于4的记录而后者将首先定位
    32         到DeptNO = 3的记录再向前扫描到第一个Dept大于3的记录
    33 11.UNION代替OR的使用
    34 12.TOP + 数值 替代 TOP + 百分比 的使用
    35 13.尽量使用精准查询
    36     在LIKE语句中,若能确定使用LIKE'a%'则不用LIKE'%a'或LIKE'%a%'
    37     因为前者能用上索引,而后两者则不能。
    38     且LIKE'%a%'查询时的耗时和字段值总长度成正比,
    39     所以用VARCHAR比用CHAR类型较高效。
    40     如果能精准查询则坚决不能采用模糊查询。
    41 14.条件允许时UNION ALL替代UNION的使用
    42 15.没有必要时不用DISTINCT和ORDER BY
    43     DISTINCT和ORDER BY这些动作可以改在客户端执行。
    44     它们增加了额外的开销。这同UNION和UNION ALL一样的道理
    45 16.使用批处理更新语句,一次更新多条记录比分多次更新而每次更新一条语句快。
  • 相关阅读:
    Docker容器启动时初始化Mysql数据库
    使用Buildpacks高效构建Docker镜像
    Mybatis 强大的结果集映射器resultMap
    Java 集合排序策略接口 Comparator
    Spring MVC 函数式编程进阶
    换一种方式编写 Spring MVC 接口
    【asp.net core 系列】6 实战之 一个项目的完整结构
    【asp.net core 系列】5 布局页和静态资源
    【asp.net core 系列】4. 更高更强的路由
    【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
  • 原文地址:https://www.cnblogs.com/ciade/p/4788158.html
Copyright © 2011-2022 走看看