zoukankan      html  css  js  c++  java
  • 测试sql语句性能,提高执行效率

    为了让您的程序执行的效率更高,SQL的效率一定不可忽视。
    现有以下方法去检测SQL的执行效率。  
    对于多表查询的效率测试:
    1)直接from ,where方式。
    SET STATISTICS io ON
            SET STATISTICS time ON
            go
      ---你要测试的sql语句
    select g.grpName,t.grpID,t.flowID,t.typeName,t.description
    from hyGroup g  ,hyType t where  t.grpID = g.flowID       
             
            go
            SET STATISTICS profile OFF
            SET STATISTICS io OFF
            SET STATISTICS time OFF
     
    SQL Server 分析和编译时间: 
       CPU 时间 = 4 毫秒,占用时间 = 4 毫秒。
    (8 行受影响)
    表 'hyType'。扫描计数 1,逻辑读取 7 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    表 'hyGroup'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
     
    2)inner join 方式:
      SET STATISTICS io ON
            SET STATISTICS time ON
            go
      ---你要测试的sql语句
    select g.grpName,t.grpID,t.flowID,t.typeName,t.description
    from hyGroup g  inner join hyType t on   t.grpID = g.flowID       
             
            go
            SET STATISTICS profile OFF
            SET STATISTICS io OFF
            SET STATISTICS time OFF 
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    (8 行受影响)
    表 'hyType'。扫描计数 1,逻辑读取 7 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    表 'hyGroup'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
     
     
    3)left join 方式
      SET STATISTICS io ON
            SET STATISTICS time ON
            go
      ---你要测试的sql语句
    select g.grpName,t.grpID,t.flowID,t.typeName,t.description
    from hyGroup g  left join hyType t on   t.grpID = g.flowID       
             
            go
            SET STATISTICS profile OFF
            SET STATISTICS io OFF
            SET STATISTICS time OFF
     
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 3 毫秒。
    (10 行受影响)
    表 'hyType'。扫描计数 1,逻辑读取 7 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    表 'hyGroup'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    4)right join 方式
      SET STATISTICS io ON
            SET STATISTICS time ON
            go
      ---你要测试的sql语句
    select g.grpName,t.grpID,t.flowID,t.typeName,t.description
    from hyGroup g  right join hyType t on   t.grpID = g.flowID       
             
            go
            SET STATISTICS profile OFF
            SET STATISTICS io OFF
            SET STATISTICS time OFF
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 3 毫秒。
    (8 行受影响)
    表 'hyGroup'。扫描计数 1,逻辑读取 8 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    表 'hyType'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 分析和编译时间: 
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SQL Server 执行时间:
       CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    
    
    转载于jing_xin   来自
  • 相关阅读:
    使用ASP的优势和劣势
    rman的catalog命令
    sql exist和in的区别及查询效率比较
    zblog模板修改字体大小的教程
    js 刷新和关闭页面触发的事件 及操作COOKIE
    Flex走出低谷的关键: 打破Flex固有的定义
    服务网健康日志中 radio传值解决方案
    sql语句查询出表里的第二条、第三条记录(附加多个条件)
    鼠标经过超链接文字变色
    (asp.net)鼠标放上去的时候文本框的提示消失,鼠标离开又重新显示
  • 原文地址:https://www.cnblogs.com/xyzhuzhou/p/3607862.html
Copyright © 2011-2022 走看看