Server中通过查看SQL语句执行所用的时间,在做系

作者: www.9159.com  发布:2019-11-05

在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的耗时,


 通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:

1.使用T-Sql语句

SET STATISTICS IO ON;
SET STATISTICS TIME ON; 

--要执行的Sql

SET STATISTICS IO OFF;
SET STATISTICS TIME OFF; 

 

现在如果大家对那版的Sql语句的写法不怎么懂的话就可以参考上面的,而且 是时时的,你在Sql里操作几下这里就会出现相应的Sql语句,也是一个学习和提高的好工具

方法一 手动计算

  先记录执行前的时间,然后在记录执行Sql后的时间,然后做减法

declare @d datetime
set @d=getdate()
/*你的SQL脚本开始*/

/*你的SQL脚本结束*/
select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

  这种方法感觉不够准确,和第二种方法对比,时间显示比较长,可能是操作时间的相关函数导致的吧

 2.使用工具的设置项

设置方法:工具--选项--查询执行--SQL Server--高级,勾中如下选项:

图片 1

 

设置完成后,执行Sql的效果如下图所示:

图片 2

          SQL Server Profiler的中文意思是SQL Server事件探查,一个Sql的监视工具,可以具体到每一行Sql语句,每一次操作,和每一次的连接。感觉这个工具的作用还是很大的,给大家分享一下,对于新手了解Sql语句的写法和提高语句的性能方法有很大的帮助。

方法二 使用sql开启自带统计

  将执行每个语句时采取的步骤作为行集返回,通过层次结构树的形式展示出来 

SET STATISTICS PROFILE ON 
SET STATISTICS IO ON 
SET STATISTICS TIME ON 
GO
/*--你的SQL脚本开始*/


/*你的SQL脚本结束*/
GO SET STATISTICS PROFILE OFF SET STATISTICS IO OFF SET STATISTICS TIME OFF

 

 

第2个方法效果如下图,

图片 3

 

在SQL Server中,可以通过如下两种方式来方便的知晓Sql语句执行的耗时以及IO消耗

和上面一样我们要先输入数据库的登录信息

   在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。

图片 4

SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。 
SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。 
SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。

现在就可以单击开始了

方法三 用Sql Server 自带的工具

位置:工具》选项》查询执行》高级

 

图片 5

 

效果如图,

图片 6

原文:

相关:

 


如下图

不仅仅是这样,我们还可以对其中的数据进行分析,查询,跟踪可以暂停,开始和停止操作,可以同时启动多个跟踪,同时跟踪不同的数据库和表

图片 7

      LoginName           用户的登录名(SQL Server 安全登录或 Windows 登录凭据,格式为“域用户名”)

 

      Duration             事件占用的时间。尽管服务器以微秒计算持续时间,SQL Server Profiler 却能够以毫秒为单位显示该值,具体情况取决于“工具”>“选项”对话框中的设置

     数据库引擎优化顾问使用方法

      StratTime           事件(如果可用)的启动时间。

假如我们把文件保存为123.trc

      ClientProcessID   调用 SQL Server 的应用程序的进程 ID。

 

需要过滤具体的列名值,则选择对应的列,在右边树形框录入具体的值,并必须选择排除不包含值的行哈。

我们可以看一下界面,一般不用选择只要安默认的就OK了,需要配置的我上面都有注释。在这里大家一定要记得选择用于工作负荷的数据库和表,意思就是设置要分析的数据库否则会分析不成功。

     现在我们来打开数据库引擎优化顾问  我们单击开始--程序--Microsoft SQL Server 2005--性能工具--数据库引擎优化顾问

图片 8

然后会出现如下界面

     我们单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler

      SPID                  SQL Server 为客户端的相关进程分配的服务器进程 ID。

图片 9

图片 10

 

图片 11


接着:

 

图片 12

      BinaryData          依赖于跟踪中捕获的事件类的二进制值。

图片 13

   如下图

 如果和Sql的数据库引擎优化顾问配合使用的话就更好了,可以分析出来你的Sql语句性能如果,而且还会告诉你怎么修改会更好,我们一起来看一下吧

 

我们还可以对统计的字段进行筛选,单击任意一个列标题可以查看列的说明如下图

      ApplicationName  创建 SQL Server 连接的客户端应用程序的名称。此列由该应用程序传递的值填充,而不是由所显示的程序名填充的;

 

      Reads                 由服务器代表事件读取逻辑磁盘的次数。

      然后我们单击运行就可以,当然如果有兴趣的话你也可以对列进行重新排列和筛选,只要单击下面相应的按钮根据提示操作就要可以了,我们这里就安默认的进行

      TextDate            依赖于跟踪中捕获的事件类的文本值;

在这里我们可以看到分析成功后的分析报告,这还不算,我们单击上面的

在这里我们输入 我们的跟踪的数据库的服务器名称,用户名和密码等信息。单击连接进入下一个界面

简介

 

 

图片 14

      Writes                由服务器代表事件写入物理磁盘的次数。

 

通过上面的图我们就可以清楚的跟踪到每一步操作是过程了,

上图中左面的可以进行一个基本设置,使用的模板选择,和文件的保存选择等。我们一般使用默认的就OK了,不用动上面的东西,右面的图是事件选择,也就是说我们要跟踪的事件有那个,在这里可以一一的选择,基本上Sql上有的事件都有,包括你用SQL Server Management Studio操作数据库的过程都可以跟踪的到。具体的事件和说明大家可以自己看一下。

我们从上图上依次说明 为:

在这里还给出了你的那些表,需要优化,应该怎么建立索引和视图才能更有效的提高性能,更好玩的是连需要优化的Sql语句都给生成好了,

 

      NTusername        Windows 用户名。

图片 15

      EndTime             事件结束的时间。对指示事件开始的事件类(例如 SQL:BatchStarting 或 SP:Starting)将不填充此列。

我们单击文件---【新建跟踪(N)...】,这是一个多窗口多任何的工具,我们可以同时新建不同的跟踪窗口,也可以是不同的数据库

图片 16图片 17

    有了这个跟踪的记录我们怎么样使用数据库引擎优化顾问对其进行分析优化呢?当然第一步我们要先把跟踪到的记录导出到文件.trc类型的文件。单击文件--另存为

建议选项卡

只要单击显示所有事件就可以进行全部事件的选择了。

我们直接复制执行就要可以了。

    SQL Server Profiler使用方法

 

单击连接进入如下界面

      CPU                    事件使用的 CPU 时间(毫秒)。

图片 18

本文由9159.com发布于www.9159.com,转载请注明出处:Server中通过查看SQL语句执行所用的时间,在做系

关键词: