• SQL Server2008 inner join多种方式的实践


         这些天的学习,才发现自己对SQL原来是如此的不了解。之前一直以为自己轻松应对各种复杂的SQL查询,但是一旦提到效率上,可能就比较傻眼了,有时候也会埋怨客户的服务器不好使。

         至于Inner Join的三种方式:loop,merge, hash,园子里面有很多文章,话说看多遍不如自己实际操作一遍。今天也来操作一番试试。说明:T(4)表中约有4.6万行数据,T(1)表中约有4.1万行数据

         第一种:merge

    declare @begin datetime
    Declare @end datetime
    set @begin = GETDATE()
    set statistics io on Select * From dbo.[T(4)] inner merge join dbo.[T(1)] On dbo.[T(4)].keyword0 = dbo.[T(1)].keyword0
    set statistics io off set @end = GETDATE() print datediff(millisecond,@begin,@end)

      第二种:hash

       

    Declare @begin datetime
    Declare @end datetime
    set @begin = GETDATE()
    set statistics io on Select * From dbo.[T(4)] inner hash join dbo.[T(1)] On dbo.[T(4)].keyword0 = dbo.[T(1)].keyword0
    set statistics io off set @end = GETDATE() print datediff(millisecond,@begin,@end)

      两种SQL执行的结果分别显示:

    (239657 行受影响)
    表 'T(4)'。扫描计数 10,逻辑读取 3236 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    表 ''T(1)'。扫描计数 10,逻辑读取 3064 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    表 'Worktable'。扫描计数 12,逻辑读取 430 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    耗时:22006


       (239657 行受影响)
      表 ''T(4)'。扫描计数 10,逻辑读取 3236 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
      表 ''T(1)'。扫描计数 10,逻辑读取 3064 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
      表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    耗时:17026

       从上可以看出,Merge比Hash多了一步操作,就是对Worktable的操作,多出的时间耗时应该就是在此处所消耗的。

       CPU耗时分别如下:

       (239657 行受影响)

      SQL Server 执行时间:
       CPU 时间 = 12763 毫秒,占用时间 = 24520 毫秒。

      (239657 行受影响)

     SQL Server 执行时间:
       CPU 时间 = 11702 毫秒,占用时间 = 17587 毫秒。
     

       本来还想查看下内存开销,结果不知道有啥好的方法可以查看内存开销。今天就先暂时到这,后续继续。

     

  • 相关阅读:
    jsp设置footer底部内容
    dashboard项目心得:
    深度和广度优先算法
    一个action读取另一个action里的session
    算法笔记-0302
    JAVA基础---面向对象
    Flutter 读写本地文件
    Dart 处理json,built_value库
    Flutter 页面入栈和出栈
    web项目如何使用Material Icons
  • 原文地址:https://www.cnblogs.com/zhongjicainiao/p/4897867.html
Copyright © 2020-2023  润新知