SQL Server 得到SPID,唯一的sessionID
时间:2022-03-10 17:19
像.net中的session一样,如果能知道了数据库中的sessionID,那所有的操作都能知道了,因为有了这个唯一的身份识别的标识。
可以做的事情有很多,如:当前哪个用户在做什么操作,在执行什么sql, 又如一个比较大的逻辑中要分别执行很多存储过程,
在执行这些存储过程的过程当中,你想知道当前执行的进度,SQLServer正在执行哪个段sql语句,那么通过sessionID是很容易
就得到这些信息的。
SQL Server 得到SPID,唯一的sessionID:
SELECT @@SPID
以前我一直不知道,最近又装了SQLServer2014,发现每开一个Query 界面就有一个ID出来。我就特别想知道怎么取sessionID.
下面的存储过程是用来查看哪些sessionID正在执行什么操作。
create PROC [dbo].[dba_WhatSQLIsExecuting]
AS
BEGIN
-- Do not lock anything, and do not get held up by any locks.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
-- What SQL Statements Are Currently Running?
SELECT [Spid] = session_Id
, ecid
, [Database] = DB_NAME(sp.dbid)
, [User] = nt_username
, [Status] = er.status
, [Wait] = wait_type
, [Individual Query] = SUBSTRING (qt.text,
er.statement_start_offset/2,
(CASE WHEN er.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE er.statement_end_offset END -
er.statement_start_offset)/2)
,[Parent Query] = qt.text
, Program = program_name
, Hostname
, nt_domain
, start_time
FROM sys.dm_exec_requests er
INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt
WHERE session_Id > 50 -- Ignore system spids.
AND session_Id NOT IN (@@SPID) -- Ignore this current statement.
--and DB_NAME(sp.dbid)=‘RangeCheckTool‘
ORDER BY 1, 2
END
还可以参考下面的文章:
http://www.mssqltips.com/sqlservertip/1799/identify-last-statement-run-for-a-specific-sql-server-session/
The handle itself does not really do much for us without the function call that rationalizes it into the original query text. As you can see though, this very simple query does provide
us with yet another option for returning information on what users are (or have been) doing on the SQL Server instances we support.
Next Steps
- The Dynamic Management Objects have so much to offer the DBA. from MSSQLTips.com.
- Read more tips by the author .
- Still interested in information on sysprocesses, whether as a system table (pre-SQL 2005) or system view? Here are some that
meet your needs.
SQL Server 得到SPID,唯一的sessionID,布布扣,bubuko.com
相关推荐
- xshell怎么连接数据库
- MySQL数据库设计规范(仅供参考)
- SQLServer字符串查找(判断字符串是否含数字或字母)
- MySQL源码安装5.7-CentOS7
- 数据库常用架构和同步工作原理
- Apache HBase 1.7.1 发布,分布式数据库
- SQL Server 数据库分离和附加
- sqlSugar 简单封装及使用案例
- 【MySQL】-索引类型
- mysql的数据类型详解
电脑软件
热门排行
今日推荐
热门手游
The handle itself does not really do much for us without the function call that rationalizes it into the original query text. As you can see though, this very simple query does provide us with yet another option for returning information on what users are (or have been) doing on the SQL Server instances we support.
Next Steps
- The Dynamic Management Objects have so much to offer the DBA. from MSSQLTips.com.
- Read more tips by the author .
- Still interested in information on sysprocesses, whether as a system table (pre-SQL 2005) or system view? Here are some that meet your needs.
SQL Server 得到SPID,唯一的sessionID,布布扣,bubuko.com
相关推荐
- xshell怎么连接数据库
- MySQL数据库设计规范(仅供参考)
- SQLServer字符串查找(判断字符串是否含数字或字母)
- MySQL源码安装5.7-CentOS7
- 数据库常用架构和同步工作原理
- Apache HBase 1.7.1 发布,分布式数据库
- SQL Server 数据库分离和附加
- sqlSugar 简单封装及使用案例
- 【MySQL】-索引类型
- mysql的数据类型详解