SQLServer 查看SQL语句的执行时间

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

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

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

方法一 手动计算

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

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

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

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

方法二 使用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个方法效果如下图,

 

方法三 用Sql Server 自带的工具

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

 

 

效果如图,

原文:http://www.cnblogs.com/wangguowen27/p/SqlServer_Select_wgw.html

相关:

http://blog.csdn.net/hj850126/article/details/7161028

http://www.cnblogs.com/qanholas/archive/2011/05/06/2038543.html

 

时间: 2024-08-15 08:40:40

SQLServer 查看SQL语句的执行时间的相关文章

在SQLServer上查看SQL语句的执行时间的方法_MsSql

1:下面这种是比较简单的查询方法,通过查询前的时间和查询后的时间差来计算的 复制代码 代码如下: declare @begin_date datetime declare @end_date datetime select @begin_date = getdate() <这里写上你的语句...> select @end_date = getdate() select datediff(ms,@begin_date,@end_date) as '用时/毫秒' 2:下面这种方法比较全面,将执行每

在SQLServer上查看SQL语句的执行时间的方法

1:下面这种是比较简单的查询方法,通过查询前的时间和查询后的时间差来计算的 复制代码 代码如下: declare @begin_date datetime declare @end_date datetime select @begin_date = getdate() <这里写上你的语句...> select @end_date = getdate() select datediff(ms,@begin_date,@end_date) as '用时/毫秒' 2:下面这种方法比较全面,将执行每

缓存-oracal sql语句服务器执行时间超长,本地很快!不知道原因,求oracal大神围观!

问题描述 oracal sql语句服务器执行时间超长,本地很快!不知道原因,求oracal大神围观! 贴上sql(这个sql大家不用太用心看,语句不是问题): insert into pms_consump SELECT DISTINCT DECODE (nvl(trans.transamt,0), 0, '0.00', TRUNC (nvl(trans.transamt,0) / 100, 2)) AS transamt, nvl(trans.transamt,0) AS hiddenTran

sqlserver的sql语句转成oracle

问题描述 sqlserver的sql语句转成oracle SELECT FF.*, AF.FUNCGROUPNAME FROM (SELECT F.FUNCCODE,F.FUNCNAME,F.ISMENU,F.FUNCGROUPID, (CASE WHEN PARTY_ID IS NULL THEN 0 ELSE 1 END) ISCHECK FROM APP_FUNCTION F LEFT JOIN CAP_RESAUTH CR ON F.FUNCCODE = CR.RES_ID AND CR

oracle中得到一条SQL语句的执行时间的两种方式_oracle

oracle中如果需要得到一条SQL语句的执行时间可以用如下2种方式 复制代码 代码如下: SQL> set timing on; SQL> select count(*) from wea; COUNT(*) ---------- 39490 已用时间: 00: 00: 00.06 SQL> select sql_text, elapsed_time from v$sql 2 where sql_text like 'select count(*) from wea'; 未选定行 已用

mysql查看sql语句执行历史记录的例子

mysql查看sql语句执行历史记录  cat ~/.mysql_history 对于mysql版本5.1以后的版本,可以通过以下方式启动日志记录.能够记录下包括应用程序执行的sql语句. MariaDB [(none)]> SET GLOBAL log_output = 'TABLE'; Query OK, 0 rows affected (0.02 sec) MariaDB [(none)]> SET GLOBAL general_log = 'ON'; Query OK, 0 rows

在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误_oracle

进入sqlplus SQL> set timing on SQL> SQL> select count(*) from comm_human_role; COUNT(*) ---------- 866 Elapsed: 00:00:00.05 以上数字输出分别是:Hours:Minutes:Seconds.Milliseconds 即用了0.05秒的时间执行,相当于50毫秒. 时间如果是这样的表示:00: 03: 235.78 总共用的时间为235.78秒, 不到4分钟,所以显示的是3分

关于Nhibernate输出查看Sql语句的问题。

问题描述 项目框架使用的是Nhibernate+Spring.Net,如何查看执行的Sql语句?(:不使用log4Net日志查看) 解决方案

SQL Server版本号查看sql语句(SQL Server 2000 &amp; 2005 &amp; 2008)

今天要查询自己的装的sqlserver2008 是否是R2版本,搜索了下,发现很多人查询此问题,现在记录如下,通过版本命令查询 同时也了解了哥哥sql server的对应版本好,一看就非常清晰了,记录下 1.查看 SQL Server 2005/2008 版本号  代码如下 复制代码 select serverproperty('productversion') ,serverproperty('productlevel') ,serverproperty('edition') 下面是 SQL