对于SQLServer查看SQL语句的执行时间感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解如何查看sql语句执行时间,并且为您提供关于(转)查看SQLServer最耗资源时间的SQL语句
对于SQLServer 查看SQL语句的执行时间感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解如何查看sql语句执行时间,并且为您提供关于(转)查看SQLServer最耗资源时间的SQL语句、mssql server 跟踪某个表 sql 语句的执行、mysql 如何查看sql语句执行时间、SQL Server 2005 定时执行SQL语句的方法的宝贵知识。
本文目录一览:- SQLServer 查看SQL语句的执行时间(如何查看sql语句执行时间)
- (转)查看SQLServer最耗资源时间的SQL语句
- mssql server 跟踪某个表 sql 语句的执行
- mysql 如何查看sql语句执行时间
- SQL Server 2005 定时执行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语句
原文地址: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 语句的执行
打开 SQL 事件探查器 - 文件 - 新建跟踪
跟踪属性的设置
事件 选择 “安全审核”-“Audit Object Permission”
数据列 选择 “DatabaseName ,ObjectName ,TextData”
筛选 选择 DatabaseName 输入数据库名 ,ObjectName 输入表明, TEXTDATA--- 类似于 --- 输入 UPDATE%,insert%
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有定时任务,你可以启动一下。不过要想更加直观的控制,直接写一个程序,定时执行你的存储过程。
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语句的方法等相关知识,可以在本站进行查询。
本文标签: