Basic Concepts2:Session

sys.dm_exec_sessions

Returns one row per authenticated session on SQL Server. sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks. This information includes client version, client program name, client login time, login user, current session setting, and more. Use sys.dm_exec_sessions to first view the current system load and to identify a session of interest, and then learn more information about that session by using other dynamic management views or dynamic management functions.

一,重要参数

1,Status of the session. Possible values:

  • Running - Currently running one or more requests
  • Sleeping - Currently running no requests
  • Dormant – Session has been reset because of connection pooling and is now in prelogin state.
  • Preconnect - Session is in the Resource Governor classifier.

2,Request

last_request_start_time:Time at which the last request on the session began. This includes the currently executing request.

last_request_end_time:Time of the last completion of a request on the session

reads:Number of reads performed, by requests in this session, during this session

writes:Number of writes performed, by requests in this session, during this session.

logical_reads:Number of logical reads that have been performed on the session

3,事务

open_transaction_count:Number of open transactions per session.

transaction_isolation_level:

Transaction isolation level of the session:

  • 0 = Unspecified
  • 1 = ReadUncomitted
  • 2 = ReadCommitted
  • 3 = Repeatable
  • 4 = Serializable
  • 5 = Snapshot

4,其他

  • Login
  • set option

二,分析

1,Finding idle sessions that have open transactions

The following example finds sessions that have open transactions and are idle. An idle session is one that has no request currently running.

SELECT s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS
    (
    SELECT *
    FROM sys.dm_tran_session_transactions AS t
    WHERE t.session_id = s.session_id
    )
    AND NOT EXISTS
    (
    SELECT *
    FROM sys.dm_exec_requests AS r
    WHERE r.session_id = s.session_id
    );

2,查看系统中存在的Block

SELECT  R.session_id AS BlockedSessionID ,
        S.session_id AS BlockingSessionID ,
        Q1.text AS BlockedSession_TSQL ,
        Q2.text AS BlockingSession_TSQL ,
        C1.most_recent_sql_handle AS BlockedSession_SQLHandle ,
        C2.most_recent_sql_handle AS BlockingSession_SQLHandle ,
        S.original_login_name AS BlockingSession_LoginName ,
        S.program_name AS BlockingSession_ApplicationName ,
        S.host_name AS BlockingSession_HostName
FROM  sys.dm_exec_requests AS R
INNER JOIN sys.dm_exec_sessions AS S ON R.blocking_session_id = S.session_id
INNER JOIN sys.dm_exec_connections AS C1 ON R.session_id = C1.most_recent_session_id
INNER JOIN sys.dm_exec_connections AS C2 ON S.session_id = C2.most_recent_session_id
CROSS APPLY sys.dm_exec_sql_text(C1.most_recent_sql_handle) AS Q1
CROSS APPLY sys.dm_exec_sql_text(C2.most_recent_sql_handle) AS Q2

提示:使用Connection的Most_recent_sql 来获取sql_handle,背后的实现原理是:Session使用数量不多的Connection Pool,存在一个connection轮流供多个Session使用的情况。

Appendix:

sys.dm_exec_connections:connection 是能够被多个session reuse的

most_recent_session_id:Represents the session ID for the most recent request associated with this connection. (SOAP connections can be reused by another session.)

most_recent_sql_handle:The SQL handle of the last request executed on this connection. The most_recent_sql_handle column is always in sync with the most_recent_session_id column.

参考Doc:

sys.dm_exec_sessions (Transact-SQL)

sys.dm_exec_connections (Transact-SQL)

时间: 2024-10-10 16:32:29

Basic Concepts2:Session的相关文章

重新认识之:Session篇

1.Session的作用 Session被称作"会话控制",是一个与时间相关的概念,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去. 任何东西存在都是基于某种需求的:Session是的客户端数据持久化,跨页面访问得到实现. 2.Session工作原理 1)当一个session第一次被启用时,一个唯一的标识SessionID被存储于本地的cookie中,并基于这个ID来存储变量 可以从上图看到响应头自动添加了Co

Servlet 第六课: Session的使用

课程目标: 通过这节课,我们能够学会加入session,学会调用session,以及大概懂得session存在的情况. 课程具体: 1.Session仅仅是存在于浏览器.比方我们打开浏览器获得我们所须要的session,我们在同一个浏览器再打开,我们所须要的这个session是还存在的. 可是假设我们换用其它的浏览器或者直接关闭浏览器,那么这个session就会过期. 2.Session –Session 是用来跟踪用户当前状态的一种机制,是针对浏览器和server的一对一关系. –Sessio

java:Session

1.Session概述: Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去.当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象.当会话过期或被放弃后,服务器将终止该会话.Session 对象最常见的一个用法就是存储用户的

Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration

Session接口: Session接口 Session 接口对于Hibernate 开发人员来说是一个最重要的接口.然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源.这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session 的开销太大,会给系统带来不良影响.但是Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象. session可以看作介于数据连接与事

hiberbate学习:session方法补充

一:测试用例 二:知识补充 1:saveOrUpdate 既可以执行insert也可以执行update.取决于对象有没有id 2:部分更新 Session session = factory.getCurrentSession(); session.beginTransaction(); Query query = (Query) session.createQuery("update Teacher t set t.name='zz' where t.id = 1"); query.

解读ASP.NET 5 & MVC6系列(8):Session与Caching

原文:解读ASP.NET 5 & MVC6系列(8):Session与Caching 在之前的版本中,Session存在于System.Web中,新版ASP.NET 5中由于不在依赖于System.Web.dll库了,所以相应的,Session也就成了ASP.NET 5中一个可配置的模块(middleware)了. 配置启用Session ASP.NET 5中的Session模块存在于Microsoft.AspNet.Session类库中,要启用Session,首先需要在project.json

ThinkPHP函数详解:session方法

Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 session($name, $value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作.Value(可选):要设置的session值,如果传入null表示删除session,默认为空字符串 返回值 见详(根据具体的用法返回不同的值)

关于PHP会话:session和cookie

会话处理解决什么问题 HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本.图形.视频和所有其他的数据的规则.HTTP是一种无状态协议,每次请求的处理,都与之前和之后的请求无关. 会话处理是这种无状态问题的解决办法.它的实现方式是为每一位网站访问者分配一个称为会话ID(SID)的唯一标志属性,然后将此SID与任意数量的数据关联. 会话处理流程 浏览器向服务器发送请求 服务器为访客建立会话ID(SID),通常SID存储在服务器端一个文件中. 存储在客户端($_COOKIE['PHPSESS

session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。 说白了session就是一种可以维持服务器端的数据存储技术。session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功

session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息. 说白了session就是一种可以维持服务器端的数据存储技术.session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能 3. 单纯的使用session来维持用户状态的话