SQL2005性能分析一些细节功能你是否有用到?(二)

原文:SQL2005性能分析一些细节功能你是否有用到?(二)

上一篇:SQL2005性能分析一些细节功能你是否有用到? 我简单的提到了些关于SQL性能分析最基本的一些方法,下面的文章我会陆续补充。前面提到了根据SQL的执行IO和执行计划来分析,还有一个特别重要的参数,就是SET STATISTICS TIME。

第一: SET STATISTICS TIME

定义:SET STATISTICS TIME (Transact-SQL)  显示分析、编译和执行各语句所需的毫秒数。

语法:SET STATISTICS TIME { ON | OFF }

备注:当 SET STATISTICS TIME 为 ON 时,会显示语句的时间统计信息。为 OFF 时,不显示时间统计信息。SET STATISTICS TIME 的设置是在执行或运行时设置,而不是在分析时设置。

权限 :若要使用 SET STATISTICS TIME,用户必须具有执行 Transact-SQL 语句的相应权限。但不需要 SHOWPLAN 权限。

作用:我们可以利用这个参数来查看SQL的CPU开销情况,进而做出优化方案。

效果图:

第二:sp_help

定义:报告有关数据库对象(sysobjects 表中列出的任何对象)、用户定义数据类型或 Microsoft® SQL Server™ 所提供的数据类型的信息。

语法 :sp_help [ [ @objname = ] name ]

          参数 :[@objname =] name 是 sysobjects 中的任意对象的名称,或者是在 systypes 表中任何用户定义数据类型的名称。不能使用数据库名称。

效果图:

内容:

1:表结构,它会列出目标表中所有的字段信息:名称,数据类型等。

2:索引情况,包含聚集索引和非聚集索引.索引所对应的字段等。

3:表字段的约束情况

4:表的基本信息,表类型,创建时间,表名等。

5:主键详细信息。

用途一:一般对于性能分析关系有直接关系的有1,2,5。开发员可以非常快捷清晰的查看表的设计情况.对于查询来说最重要的就是表的索引情况和表结构.对于其它的用途本人暂不胡说了。

案例:一次实际开发中,运行一个单表查询,发面页面报出SQL05 timeout的错误,后来在数据库中直接运行语句发现时间特别长,达到58m,查看记录,一个长达9位数的字样把我吓到了,没办法只能是优化了,sp_help下,发现条件中的字段没有创建索引, 创建后再试,基本控制在1m左右。

第三:SET NOCOUNT

定义:阻止在结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。

语法:SET NOCOUNT { ON | OFF }

备注:当 SET NOCOUNT 为 ON 时,不返回计数。当 SET NOCOUNT 为 OFF 时,返回计数。即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。当 SET NOCOUNT 为 ON 时,将不向客户端发送存储过程中每个语句的 DONE_IN_PROC 消息。如果存储过程中包含一些并不返回许多实际数据的语句,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。SET NOCOUNT 指定的设置是在执行或运行时生效,而不是在分析时生效。

权限:要求具有 public 角色的成员身份。

注意点:ExecuteNonQuery();将得不到返回值,此时可以利用存储过程的返回参数来获得.

缺点:当我们执行一条更新或者是删除语句时,一般判断是否成功都是根据这个返回的受影响的行来判断,现在当SET NOCOUNT 为 ON 时,不返回计数,只能利用输出参数来判断了.

优点:如果存储过程中包含一些并不返回许多实际数据的语句,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。

总结:可能有的朋友会认为本人只是在这一味的copy MSDN,其实从本质上说是这样,但copy并不代表一无是处,经过我的工作经验来看,我们开发中遇到的很多问题其实在MSDN上都有说明,但为什么我们总是在MSDN上找不到答案呢?这就是因为我们不懂搜索相关的关键字,为此我将我的一些学习所得写出来,希望和我一样不太会用MSDN的朋友共进步.

注:本文引用MSDN

时间: 2024-10-07 10:13:43

SQL2005性能分析一些细节功能你是否有用到?(二)的相关文章

SQL2005性能分析一些细节功能你是否有用到?(三)

原文:SQL2005性能分析一些细节功能你是否有用到?(三) 继上篇: SQL2005性能分析一些细节功能你是否有用到?(二) 第一: SET STATISTICS PROFILE ON 当我们比较查询计划中那一个最好时,事实上我们更愿意用SET STATISTICS PROFILE ON,而不是SET SHOWPLAN_TEXT ON.它可以告诉你每种选择的或多或少的查询消耗情况;你还可以同时运行两个或更多查询来看哪个执行的最好. 运行SET STATISTICS PROFILE ON 后,发

【性能分析】初探VS2010中的Profile(性能剖析)功能

VS2010中的Profile(性能剖析)功能十分实用,它可以协助程序员迅速锁定当前程序的性能瓶颈,为程序的优化做准备. 点击VS2010的Analyze菜单,选择Launch Performance Wizard,依照提示可以很方便地完成Profile的必需配置.可能你会碰到"Injection of runtime library failed"错误,这时就不要使用Wizard,而要选择Analyze下拉菜单中的Profiler->Attach/Detach...,将Prof

系统级性能分析工具perf的介绍与使用

测试环境:Ubuntu14.04  on VMWare Kernel:3.13.0-32 系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化.性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码.代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能. 在性能剖析阶段,需要借助于现有的profiling工具,如perf等.在代码优化阶段往往需要借助开发者的经验,编写简洁高效的代码,甚至在汇编级别合理使用各种指令,合理安排各种指

转 web前端性能分析--分析篇

通过具体实施后就可以获得第一手的web前端性能的数据了,然后每次新版本都跑,这就会获得大量的数据,为性能分析提供了基础的输入,同时应该还要综合使用多种工具去从不同的方向收集数据:比如showslow同时还支持yslow,pagespeed,webpagetest等测试工具传上去的数据,因此在具体的分析之前要从纵向.横向来收集数据,这样统计分析出来的结果才能有实际的参考价值.当然如果你还发现其它工具也可以提供一些性能数据,也可以收集起来,比如:httpanalyzer,httpwatcher都支持

超全整理!Linux性能分析工具汇总合集

出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列. 本文档主要是结合Linux 大牛,Netflix 高级性能架构师 Brendan Gregg 更新 Linux 性能调优工具的博文,搜集Linux系统性能优化相关文章整理后的一篇综合性文章,主要是结合博文对涉及到的原理和性

转 WEB前端性能分析--工具篇

在线网站类: WebPageTest 说明: 在线的站点性能评测网站,地址http://www.webpagetest.org/ 补充: 其实这网站也是个开源项目,所以支持自己搭建一个内部的测试站点 ShowSlow 说明: showslow是yslow的数据收集与展示平台http://www.showslow.com/,它是一个开源的php项目,可以用来与firefox的yslow插件.page speed插件或者dynatrace通信,收集插件或程序所发送过来的信息并集中展示.只需要在dyn

PHP 性能分析第三篇: 性能调优实战

注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或  PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 第一篇 中,我们介绍了 XHProf .而在 第二篇 中,我们深入研究了 XHGui UI, 现在最后一篇,让我们把 XHProf /XHGui 的知识用到工作中! 性能调优 不用运行的代码才是绝好的代码.其他只是好的代码.所以,性能调优时,最好的选择是首先确保运行尽可能少的代码. OpCode 缓存 首先

CLR Profiler 性能分析工具 (转)

原文地址:http://www.cnblogs.com/kevinlzf/archive/2010/11/12/1876066.html 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=16273  CLR Profiler for .NET Framework 4 最近关注程序性能的优化方面,本想写篇CLRProfiler的简要文档,看到pengpeng已写好,那就转载好了,偷偷懒. .Net的尽管拥有非常强大调试器,但

WEB前端性能分析--工具篇【转】

在线网站类: WebPageTest 说明: 在线的站点性能评测网站,地址http://www.webpagetest.org/ 补充: 其实这网站也是个开源项目,所以支持自己搭建一个内部的测试站点 ShowSlow 说明: showslow是yslow的数据收集与展示平台http://www.showslow.com/,它是一个开源的php项目,可以用来与firefox的yslow插件.page speed插件或者dynatrace通信,收集插件或程序所发送过来的信息并集中展示.只需要在dyn