zoukankan      html  css  js  c++  java
  • SQL优化

    SET STATISTICS IO ON 
    SET STATISTICS IO OFF 

    显示:
    表 ''sales''。扫描计数 18,逻辑读 56 次,物理读 0 次,预读 0 次。
    表 ''titles''。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。

    一、主键就是聚集索引

    二、只要建立索引就能显著提高查询速度
    三、把所有需要提高查询速度的字段都加进聚集索引,以提高查询速度

    (四)索引使用总结

    1、用聚合索引比用不是聚合索引的主键速度快
    2、用聚合索引比用一般的主键作order by时速度快,特别是在小数据量情况下
    3、使用聚合索引内的时间段,搜索时间会按数据占整个数据表的百分比成比例减少,而无论聚合索引使用了多少个
    4 、日期列不会因为有分秒的输入而减慢查询速度

    (五)其他注意事项

    1. 不要索引常用的小型表
    2. 不要把社会保障号码(SSN)或身份证号码(ID)选作键
    3. 不要用用户的键
    4. 不要索引 memo/notes 字段和不要索引大型文本字段(许多字符)
    5. 使用系统生成的主键

    六、改善SQL语句
     
    1、Like语句是否属于SARG取决于所使用的通配符的类型
     
    2、or 会引起全表扫描
     
    3、非操作符、函数引起的不满足SARG形式的语句
     
    4、IN 的作用相当与OR
     
    5、尽量少用NOT 
     
    6、exists 和 in 的执行效率是一样的
     
    7、用函数charindex()和前面加通配符%的LIKE执行效率一样
     
    8、union并不绝对比or的执行效率高,如果是两个字段作为条件时union比 or效率高得多,如果是同一个字段,则差不多。
     
    9、字段提取要按照“需多少、提多少”的原则,避免“select *”
     
    10、count(*)不比count(字段)慢
     
    11、order by按聚集索引列排序效率最高
     
    12、高效的TOP 

     13、用多少,提多少,尽量少用 select *
     14
    、Count(*)不比Count(字段)慢,Count(*)与Count(主键)速度相当,而Count(*)比Count(非主键)要快,且字段越长,汇总      速度越快。

    常用
    SARG(扫描因子),属于SARG时,查询快,不属于时查询慢。

    不满足SARG形式的语句最典型的情况就是包括非操作符的语句,
    如:NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE等,另外还有函数。下面就是几个不满足SARG形式的例子:
    ABS(价格)<5000
    Name like ‘%三’
     
    1、Like语句是否属于SARG取决于所使用的通配符的类型
    如:name like ‘张%’ ,这就属于SARG
    而:name like ‘%张’ ,就不属于SARG。
    原因是通配符%在字符串的开头使得索引无法使用。

    2、IN 的作用相当与OR
    语句:
    Select * from table1 where tid in (2,3)

    Select * from table1 where tid=2 or tid=3
    是一样的,都会引起全表扫描,如果tid上有索引,其索引也会失效。

     3.order by按聚集索引列排序效率最高

  • 相关阅读:
    通过静态广播监听网络变化,在通过回调通知
    支付宝九宫格
    toolBar
    QQ发送位置(高德地图)
    聊天消息 左右item
    Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
    判断软键盘是否弹出 并且隐藏
    Solve Longest Path Problem in linear time
    Why longest path problem doesn't have optimal substructure?
    [leetcode] Reorder List
  • 原文地址:https://www.cnblogs.com/flyerca/p/5320515.html
Copyright © 2011-2022 走看看