• SQL 数据优化索引建suo避免全表扫描


     

      首先什么是全表扫描和索引扫描?全表扫描所有数据过一遍才能显示数据结果,索引扫描就是索引,只需要扫描一部分数据就可以得到结果。如果数据没建立索引。 无索引的情况下搜索数据的速度和占用内存就会比用索引的检索慢和高。下面是一个例子

    1:无索引的情况

      Product表,里面没有任何索引,如下图:

    从上图中,我悲剧的看到了,物理读是9次,也就说明走了9次硬盘,你也可以想到,走硬盘的目的是为了拿数据,逻辑读有1636次,要注意的是这里

    的”次“是“页”的意思,也就是在内存中走了1636个数据页,我用dbcc ind 给你看一下,是不是有1636个表数据页。

    这里有1637个数据页的原因是第一个是IAM跟踪页。

    2:有聚集索引的情况

         下面我在Product表中建一个product_idx_productid的聚集索引,然后再次看看io情况,如下图:

    当你看到这个”逻辑读“为3次的时候,你是不是已经疯了。。。在多达1636个数据页中找到目标数据,只需3次。。。

    以上参考   http://www.cnblogs.com/huangxincheng/category/555253.html

    那么如何避免全表扫描 来提高SQL检索的性能?下面就有几种方法总结

    以下参考 http://lzz7658823.iteye.com/
     
  • 相关阅读:
    免费的编程中文书籍索引
    整理书签博客和文章
    【De8ug玩docker】-Docker常用命令操作
    Linux中的那些英文缩写和她的含义们
    Docker和DevOps是找工作必备技能
    【De8ug玩docker】-命令行只显示-bash-4.1#
    应该知道的Linux技巧
    阿里云服务器linux(centos)常用命令
    jQuery运维开发之第十七天
    js+dom开发第十六天
  • 原文地址:https://www.cnblogs.com/lykbk/p/aedereeraefewr2343243.html
Copyright © 2020-2023  润新知