如何知道TSQL语句已经运行了多久

如何知道TSQL语句已经运行了多久

declare @ms_per_tick decimal(10,6) --millisecond per tick

SELECT @ms_per_tick=1.0*datediff(millisecond,sqlserver_start_time ,getdate())/(ms_ticks-sqlserver_start_time_ms_ticks)
    FROM sys.[dm_os_sys_info];
--SELECT @ms_per_tick
select req.session_id,req.start_time request_start_time,
    ((select ms_ticks from
    sys.dm_os_sys_info)-workers.task_bound_ms_ticks )*@ms_per_tick
    ‘ms_since_task_bound‘,DATEDIFF(ms,req.start_time,getdate()) ‘ms_since_request_start‘,
    tasks.task_state,workers.state worker_state,req.status request_state,st.text,
    SUBSTRING(st.text, (req.statement_start_offset/2)+1,
    ((CASE req.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE req.statement_end_offset END - req.statement_start_offset)/2) + 1) AS stmt
    ,qp.query_plan,req.*
FROM sys.dm_exec_requests req
    LEFT join sys.dm_os_tasks tasks
    ON tasks.task_address=req.task_address
    LEFT join sys.dm_os_workers workers
    ON tasks.task_address=workers.task_address
    CROSS APPLY sys.dm_exec_sql_text(req.sql_handle) st
    CROSS APPLY sys.dm_exec_query_plan(req.plan_handle) qp
where
    (req.session_id>50 or req.session_id is null)
go

--转自 https://blogs.msdn.microsoft.com/apgcdsd/2011/05/05/tsql/

时间: 2024-10-17 16:20:46

如何知道TSQL语句已经运行了多久的相关文章

DBA工具——DMV——如何知道TSQL语句已运行了多久

原文:DBA工具--DMV--如何知道TSQL语句已运行了多久 DBA通常想知道正在运行的语句已经执行了多久了?可以使用Sqlserver profiler来捕获语句的开始时间,和现有时间比较,但是在生产环境下通常会对性能有负面影响,所以通常不建议在非必要的前提下在生产环境使用SQL Server Profiler. 此时,可以使用DMV来查询: sys.dm_exec_requests中有一个重要字段:start_time,表示request的开始时间,一个批处理就是一个request,一个r

测量TSQL语句的性能

你怎样确定你的应用程序执行的怎么样?你可以使用什么工具?每一个开发人员需要确定每一条应用程序TSQL语句是最优的.通过调整每一个查询你可以确定你的应用程序运行得尽可能的高效.你使用开发环境时更容易对应用程序的代码进行修改.一旦你的代码已成为了产品那么要做修改以优化你的代码就可能需要很长的时间,或甚至是不可能的.这就是为什么你需要在应用程序开发过程中定期检查你的应用程序代码的执行情况.本篇文章将讲述关于怎样确定运行较慢的查询的一些不同方法,并提供给你一些小技巧用于在你反复修改每一个查询来试图改进性

TSQL语句和CRUD(20161016)

上午 TSQL语句 1.创建数据库 create database test2; 2.删除数据库 drop database test2; 3.创建表 create table ceshi ( ids int auto_increment primary key, uid varchar(20), name varchar(20), class varchar(20), foreign key (class)  references class(code) ); create table cla

关于连接数据库的T-SQL语句中的一种小技巧

(编程生活中,我们经常会用到数据库.然后在通过T-SQL语句来对数据库进行操作的时候,遇到很多麻烦.话说昨天我就被困扰了一天.明明这个T-sql插数据的语句放在数据库运行的时候没有问题,到了java代码中或者其他语言中就会报错,实在不解.) 例如: 我想用INSERT 语句对数据库添加数据, 结果它给我报错了: 这个报错给我带来的就是不断的修改代码,同时还在怀疑我的编译器是不是出了问题!天哪!结果我尝试了改了一下INSERT语句!结果添加成功了!

用编程的方式将当前服务器上SQL SERVER中正执行的所有T-SQL语句记录下来 <转>

标题所描述的功能是简单的,下面的例子也很简单,但是你可以根据自己的需要进行扩充功能,我这里只是抛砖引玉而以,呵呵--,其实你有时间可以自己做一个SQL Server Profiler玩一玩.支持SqlServer2005和SqlServer2008第一步:添加引用:Microsoft.SqlServer.ConnectionInfo using Microsoft.SqlServer.Management.Trace;using Microsoft.SqlServer.Management.Co

SQL 数据库T-SQL语句查询

         SQL 数据库T-SQL语句查询 附加数据库的数据文件 查询表中种类是水果的出厂日期在201-04-01之后的 查询所有种类的总成本 以倒序的方式查询表中水果的成本 查询种类是蔬菜的并且价格在1-5之间 将product表中的名称,种类,出厂日期的数据保存在另一个名为product_new的表中,并查看 在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格. 在products表和sales表中查询销往海南的产品名称.种类.成本和销售价格. 查询年

SQL Server 2012笔记分享-46:如何快速学习T-SQL语句

对于初学者来说,T-SQL语句的编写一直是个难题,初学者还是习惯使用图形界面来做相关的SQL方面的维护工作.但是在一个稍微复杂大型的SQL场景中,如果我们能够快速的掌握和理解SQL语句的编写和使用,那么会使我们的运维工作达到事半功倍的效果. 其实对于SQL server 2012来说,本身就提供了很多途径来帮助初学者获取日常管理任务的对应T-SQL脚本.下面我们来举几个快速获取T-SQL脚本的例子. ================================================

T-SQL语句简易入门

在微软官方,有一篇介绍T-SQL语句的教程,非常好理解,完全可以帮助新手入门,了解常用SQL语句的使用语法,而且又不涉及较为复杂的操作.不用安装示例数据库AdventureWorks.下面是教程里内容的摘录. T-SQL,也就是Transact-SQL,是微软对SQL标准的实现.(说明:以下的T-SQL语句均在查询编辑器中书写.执行) 1. 创建数据库TestData CREATE DATABASE TestData GO 鼠标选中“CREATE DATABASE”,按F1,会调出“CREATE

SQL sever T-SQL语句

一.创建/删除数据库.表 create database 数据库名     --创建数据库  大小写不限制  --为注释符   可以选中该行点执行  只执行该行命令 drop database 数据库名   --删除数据库  很少使用 go     --官方说法是:GO只是SQL Server管理器(SSMS)中用来提交T-SQL语句的一个标志.可以理解为一个.sql文件的结束标记,先执行此标记上面的内容,再执行下面的内容. use 数据库名     --使用该数据库 一下操作都在该数据库内进行