GVKun编程网logo

SQLServer 查看SQL语句的执行时间(如何查看sql语句执行时间)

10

对于SQLServer查看SQL语句的执行时间感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解如何查看sql语句执行时间,并且为您提供关于(转)查看SQLServer最耗资源时间的SQL语句

对于SQLServer 查看SQL语句的执行时间感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解如何查看sql语句执行时间,并且为您提供关于(转)查看SQLServer最耗资源时间的SQL语句、mssql server 跟踪某个表 sql 语句的执行、mysql 如何查看sql语句执行时间、SQL Server 2005 定时执行SQL语句的方法的宝贵知识。

本文目录一览:

SQLServer 查看SQL语句的执行时间(如何查看sql语句执行时间)

SQLServer 查看SQL语句的执行时间(如何查看sql语句执行时间)

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 自带的工具

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

 

分享图片

 效果如图,

 

分享图片

(转)查看SQLServer最耗资源时间的SQL语句

(转)查看SQLServer最耗资源时间的SQL语句

          原文地址:https://www.cnblogs.com/My-Dream/p/6270308.html

1.找出执行时间最长的10条sql(适用于sql SERVER 2005及其以上版本)

复制代码

SELECT top 10  
    (total_elapsed_time / execution_count)/1000 N‘平均时间ms‘,total_elapsed_time/1000 N‘总花费时间ms‘,total_worker_time/1000 N‘所用的cpu总时间ms‘,total_physical_reads N‘物理读取总次数‘,total_logical_reads/execution_count N‘每次逻辑读次数‘,total_logical_reads N‘逻辑读取总次数‘,total_logical_writes N‘逻辑写入总次数‘,execution_count N‘执行次数‘,creation_time N‘语句编译时间‘,last_execution_time N‘上次执行时间‘,SUBSTRING(  
        st.text,(qs.statement_start_offset/2) + 1,(  
            (CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2  
        ) + 1  
    ) N‘执行语句‘,qp.query_plan  
FROM  sys.dm_exec_query_stats AS qs 
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st 
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp  
WHERE  
    SUBSTRING(  
        st.text,(  
            (CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2  
        ) + 1  
    ) not like ‘%fetch%‘  
ORDER BY  total_elapsed_time / execution_count DESC;  


如果想对sql作筛选,可将
not like ‘%fetch%‘  换成  like ‘%user%‘就可以找出sql语句中含有user关键字的sql

复制代码

 

2 找出执行最慢的sql语句(适用于sql SERVER 2005及其以上版本)

复制代码

SELECT
    (total_elapsed_time / execution_count)/1000 N‘平均时间ms‘,SUBSTRING(st.text,((CASE statement_end_offset
    WHEN -1 THEN DATALENGTH(st.text)
    ELSE qs.statement_end_offset END
    - qs.statement_start_offset)/2) + 1) N‘执行语句‘,last_execution_time N‘上次执行时间‘
    FROM
    sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE
SUBSTRING(st.text,((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) not like ‘?tch%‘
ORDER BY
total_elapsed_time / execution_count DESC;

复制代码

 

 3 找出最耗时的前N条T-sql语句  (适用于sql SERVER 2005及其以上版本)

复制代码

--给N赋初值为30  
declare @n int set @n=30   
  
;with maco as   
(     
    select top (@n)  
        plan_handle,sum(total_worker_time) as total_worker_time,sum(execution_count) as execution_count,count(1) as sql_count  
    from sys.dm_exec_query_stats group by plan_handle  
    order by sum(total_worker_time) desc  
)  
select  t.text,a.total_worker_time,a.execution_count,a.sql_count  
from    maco a  
        cross apply sys.dm_exec_sql_text(plan_handle) t  
          
/* 结果格式如下  
text     total_worker_time  execution_count   sql_count  
-------- ------------------ ----------------- ---------  
内容略  
*/  

复制代码

 

 4 平均耗cpu最多的前个sql (sql SERVER 2005以上版本)

复制代码

SELECT TOP 5 total_worker_time / execution_count AS [Avg cpu Time],(qs.statement_start_offset/2)+1,((CASE qs.statement_end_offset  
            WHEN -1 THEN DATALENGTH(st.text)  
            ELSE qs.statement_end_offset  
            END - qs.statement_start_offset)/2) + 1) AS statement_text   
 FROM sys.dm_exec_query_stats AS qs   
 CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st   
 ORDER BY total_worker_time/execution_count DESC  

复制代码

  

5 平均耗cpu最多的前个sql  (sql SERVER 2008或以上版本)

复制代码

SELECT TOP 20
    total_worker_time/1000 AS [总消耗cpu 时间(ms)],execution_count [运行次数],qs.total_worker_time/qs.execution_count/1000 AS [平均消耗cpu 时间(ms)],last_execution_time AS [最后一次执行时间],min_worker_time /1000 AS [最小执行时间(ms)],max_worker_time /1000 AS [最大执行时间(ms)],SUBSTRING(qt.text,qs.statement_start_offset/2+1,(CASE WHEN qs.statement_end_offset = -1 
        THEN DATALENGTH(qt.text) 
        ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) 
    AS [使用cpu的语法],qt.text [完整语法],qt.dbid,dbname=db_name(qt.dbid),qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE  execution_count>1
ORDER BY (qs.total_worker_time/qs.execution_count/1000) DESC

复制代码

 

6 总耗cpu最多的前个sql (sql SERVER 2008以上版本)

复制代码

SELECT TOP 20
    total_worker_time/1000 AS [总消耗cpu 时间(ms)],qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count>1
ORDER BY  total_worker_time DESC

复制代码

mssql server 跟踪某个表 sql 语句的执行

mssql server 跟踪某个表 sql 语句的执行

打开 SQL 事件探查器 - 文件 - 新建跟踪

跟踪属性的设置

事件  选择 “安全审核”-“Audit Object Permission”

数据列 选择 “DatabaseName ,ObjectName ,TextData”

筛选  选择 DatabaseName  输入数据库名  ,ObjectName 输入表明, TEXTDATA--- 类似于 --- 输入 UPDATE%,insert%

mysql 如何查看sql语句执行时间

mysql 如何查看sql语句执行时间

查看执行时间

1 show profiles; 
2 show variables;查看profiling 是否是on状态; 
3 如果是off,则 set profiling = 1; 
4 执行自己的sql语句; 
5 show profiles;就可以查到sql语句的执行时间;

 

实例操作:

mysql> show variables like ''%profiling%'';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| have_profiling         | YES   |
| profiling              | ON    |
| profiling_history_size | 15    |
+------------------------+-------+
3 rows in set (0.14 sec)

如果 profiling 是off,  则

mysql> set profiling=1;


执行自己的 sql 语句后

mysql> show  profiles;
+----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Query_ID | Duration    | Query                                                                                                                                                                                                                                                                                                      |
+----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|        1 | 55.04466800 | select a.s*****************otScore, a.hot_star as hotLevel, b.title as itemName, b.pic_url as picUrl,
     ifnull(b.cprice,b.sprice) as price, b.first_day_sale as sale
     from ( select item_id, shop_id, zhiyi_tag, hot_score, hot_s |

 

SQL Server 2005 定时执行SQL语句的方法

SQL Server 2005 定时执行SQL语句的方法

sql SERVER 2005有定时任务,你可以启动一下。不过要想更加直观的控制,直接写一个程序,定时执行你的存储过程。

1、设置“sql Server 代理”(sql Server Agent)服务随系统启动

--我的电脑--控制面板--管理工具--服务--右键sqlSERVERAGENT--属性--启动类型--选择"自动启动"--确定.

2、sql Server Management Studio -- sql Server 代理 -- 作业 -- 新建作业

作业设置如下:

“常规” -- 设置名称

“步骤” -- 设置步骤名称 -- “类型”T-sql -- 选择数据库 -- “命令”输入sql语句

“计划” -- “新建”-- 根据需要设置,执行时间、次数等

基本设置如上。

今天关于SQLServer 查看SQL语句的执行时间如何查看sql语句执行时间的分享就到这里,希望大家有所收获,若想了解更多关于(转)查看SQLServer最耗资源时间的SQL语句、mssql server 跟踪某个表 sql 语句的执行、mysql 如何查看sql语句执行时间、SQL Server 2005 定时执行SQL语句的方法等相关知识,可以在本站进行查询。

本文标签: