设为首页 收藏本站
查看: 1063|回复: 0

[经验分享] 在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能

[复制链接]

尚未签到

发表于 2016-11-6 09:38:07 | 显示全部楼层 |阅读模式
  在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。
set statistics profile on
set statistics io on
set statistics time on
go
你执行的SQL语句
go
set statistics profile off
set statistics io off
set statistics time off
  执行完后点消息即可。
  补充说明:
  set statistics io 检查查询所产生的读和写
  set statistics time 检查查询的运行时间
  当运行一sql语句,在消息中会显示如:
  SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 10 毫秒。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
  (0 行受影响)
表 't_login_session'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
  (3 行受影响)
  SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 11 毫秒。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
  SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
  SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
  表 't_login_session'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
  这个扫描统计告诉我们扫描执行的数量,逻辑读显示的是从缓存中读出来的页面的数量,物理读显示的是从磁盘中读的页面的数量,预读显示了放置在缓存中用于将来读操作的页面数量。
  通过看这些信息我们能得到些什么呢?
  这个查询没有扫描整个表,在表中的数据量超过1.5M字节,而仅仅执行了53个逻辑I/O操作就得到了结果。这表明该查询发现了一个可用来计算结果的索引,并且扫描索引比扫描所有数据页花费更少的I/O操作。
  索引页几乎全部放在数据缓存中,所以物理读的值是零。这是因为我们之前不久是在employees表上执行了其他查询,此时表和它的索引已经被缓存。你的查询开销可能有不同。
  Microsoft报告没有read-ahead(预读)活动。在这种情况下,数据和索引页已经被缓存起来了。当对一个很大的表作表扫描时,read-ahead可能会半路插入进来,并且在你的查询用到它们之前缓存起所需的页。当sql server(WINDOWS平台上强大的数据库平台)确定你的事务是顺序读取数据库页并且认为它能预测到你下一步将用到的页面时,Real-ahead会自动打开。实际上一个独立的sql server(WINDOWS平台上强大的数据库平台)连接在你的进程之前已开始运行并为它缓存数据页。(配置和优化read-ahead 参数已超出这篇文章的讨论范围。
  在这个例子中,该查询已经尽可能有效率地执行了,不必进一步优化。
  SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 10 毫秒。
  sql server(WINDOWS平台上强大的数据库平台)仅仅花费10毫秒时间 去分析和编译该查询。花费0毫秒去执行它(在查询结果可看到)。其真实的意思是这个查询所花费的时间太短以至不能计量。最后的信息报告了这个SET STATISTICS TIME OFF命令相关的分析及编译花费了1毫秒。你可以忽略这个信息。
  SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
  是我们关注的运行时间
  
注意实耗时间和CPU时间是以毫秒显示。这个数字在你的电脑上可能会改变(但是不要尝试与我们的笔记本电脑比较你机器的性能,因为这不是代表性的指标)。而且,每次你执行这个脚本,考虑到你的sql server(WINDOWS平台上强大的数据库平台)还在处理一些其他事务,你得到的统计信息都可能有一点不同。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-296429-1-1.html 上篇帖子: 使用MyEclipse6.0 工具Create a new connection driver (SQL SERVER 2005) 下篇帖子: Changing Server Default Collation
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表