• SQL Server2005探索之正确使用索引SQL案例补充


       应上篇文章"SQL Server2005探索之---正确使用索引"朋友们的需要,将如何正确使用索引结合几个SQL索引使用说明作为补充。

       数据库: Northwind

       SQL Server 版本: SQL Server2005

       操作之前执行如下sql:dbcc freeproccache     以清空缓存,执行“SET STATISTICS IO ON ”,查看执行成本。
                                    dbcc dropcleanbuffers

       1. 不要对数据进行计算

    Code

    执行成本:

    表 'Orders'。扫描计数 1,逻辑读取 12 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

    执行计划:

      

    执行分析:在上述SQL中WHERE条件中以CustomerID作为条件进行约束,正用到了Orders表中索引CustomerID,索引CustomerID以数据列CustomerID进行排序,SQL查询中利用了索引CustomerID配合二分法查找,很快检索了数据。

    SQL

    执行成本:

    表 'Orders'。扫描计数 1,逻辑读取 22 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

    执行计划:

    执行分析:

    这上述SQL对CustomerID列进行计算,查询计划只好使用聚集索引扫描检索数据。

    执行比较:

       合理使用索引:I/O costs:0.003125, CPU costs:0.0001625

      未合理使用索引:I/O costs: 0.0171991, CPU costs: 0.00107

    2. WHERE条件对字段使用函数

    Code

    执行成本:

    表 'Orders'。扫描计数 1,逻辑读取 12 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

    执行计划:

    对数据使用函数:

    Code

    执行成本:

    表 'Orders'。扫描计数 1,逻辑读取 15 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

    执行计划:

    执行比较:

         合理使用索引:I/O costs:0.003125, CPU costs:0.0001625

      未合理使用索引:I/O costs: 0.0046065, CPU costs: 0.00107

    3. 使用OR

    Code

    执行成本:

    表 'Orders'。扫描计数 1,逻辑读取 22 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

    执行计划:

    将OR改为UNION

    Code

    执行成本:

    表 'Orders'。扫描计数 1,逻辑读取 15 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

    执行计划:

    执行比较:

    使用OR: I/O costs:0.0171991 CPU:0.00107

    不使用OR:I/O costs:0.003125 CPU:0.0001625

    总结: 通过上述SQL不同语法比较,可以看出合理使用SARG参数可以较好的利用索引,降低执行成本,提高效率。

  • 相关阅读:
    前端资源分享
    Java的wait(), notify()和notifyAll()使用心得(转)
    Java 理论与实践: 处理 InterruptedException(转)
    关于线程中断的总结
    Python入门(good)
    看着自己有什么样的资源,利用好这些资源就好了。不要看着别人的资源流口水(转)
    android手机SD卡中的android_secure目录
    Android中ExpandableListView控件基本使用
    华为的面试经历
    Flex强制类型转换错误
  • 原文地址:https://www.cnblogs.com/tianqing/p/1263093.html
Copyright © 2020-2023  润新知