asp.net – 如何监视SQL Server中的活动连接池?
发布时间:2020-05-24 01:26:31 所属栏目:asp.Net 来源:互联网
导读:我怀疑我的Web应用程序有连接泄漏(获取超时和最大连接达到错误).所以我想监视池中有多少数据库连接是活动的.我正在使用SQL Express,所以我没有在一些帮助指南中建议的用户连接性能计数器. 我发现我也可以使用Win 2008服务器的性能监视器,但我不知道如何做到这
|
我怀疑我的Web应用程序有连接泄漏(获取超时和最大连接达到错误).所以我想监视池中有多少数据库连接是活动的.我正在使用SQL Express,所以我没有在一些帮助指南中建议的用户连接性能计数器. 我发现我也可以使用Win 2008服务器的性能监视器,但我不知道如何做到这一点.任何指导,将不胜感激. 解决方法使用简单SELECT * FROM sys.dm_exec_connections 要么 如果您需要其他数据,请尝试并采用此脚本 declare @now datetime
set @now = getdate()
set nocount off
select p.spid as spid,rtrim(p.loginame) as SQLUser,rtrim(p.nt_username) as NTUser,rtrim(p.nt_domain) as NTDomain,rtrim(case
when p.blocked <> 0 then 'BLOCKED'
else p.status
end) as status,case
when p.blocked is null or p.blocked = 0 then ''
else convert(varchar(10),p.blocked)
end as BlockedBySpid,rtrim(p.cmd) as CurrentCommand,case when p.dbid = 0 then '' else rtrim(db_name(p.dbid)) end as DBName,isnull(rtrim(p.program_name),'') as ProgramName,cast( cast(p.waittype as int) as nvarchar(10)) as CurrentWaitType,p.waittime as CurrentWaitTime,p.lastwaittype as LastWaitType,rtrim(p.waitresource) as LastWaitResource,p.open_tran as OpenTransactionCnt,p.cpu as CPUTime,convert(bigint,p.physical_io) as DiskIO,p.memusage as MemoryUsage,p.hostprocess as HostProcess,rtrim(p.hostname) as HostName,p.login_time as LoginTime,p.last_batch as LastBatchTime,p.net_address as NetAddress,ltrim(rtrim(p.net_library)) as NetLibrary,case
when lower(p.status) not in ('sleeping','background','dormant','suspended')
or p.open_tran > 0
or p.blocked > 0
or upper(ltrim(rtrim(p.cmd))) like 'WAITFOR%'
then 'Y'
else 'N'
end as Active,case
when p.net_address <> '' -- Non system processes
and p.program_name not like 'SQLAgent - %'
then 'N'
else 'Y'
end as SystemProcess,case
when p.last_batch = '19000101' then 'n/a'
when datediff(day,p.last_batch,@now) > 2 then convert(varchar(10),datediff(day,@now)) + ' days'
when datediff(hour,@now) >= 4 then convert(varchar(10),datediff(hour,@now)) + ' hrs'
when datediff(minute,@now) >= 10 then convert(varchar(10),datediff(minute,@now)) + ' min'
else convert(varchar(10),datediff(second,@now)) + ' sec'
end as TimeSinceLastBatch,p.kpid as InternalKPID,case
when (lower(p.status) in ('background','dormant')
and p.open_tran <= 0
and p.blocked <= 0
and upper(ltrim(rtrim(p.cmd))) not like 'WAITFOR%'
) or (
lower(p.status) like '%sleeping%'
)
then 0
else p.kpid
end as kpid,(convert(nvarchar,p.spid) + '.' + case
when (lower(p.status) in ('background','dormant')
and p.open_tran <= 0
and p.blocked <= 0
and upper(ltrim(rtrim(p.cmd))) not like 'WAITFOR%'
) or (
lower(p.status) like '%sleeping%'
)
then '0'
else convert(nvarchar,p.kpid)
end) + '.' + convert(nvarchar,convert(float,p.login_time)) as SessionLifeTimeKey,p.login_time) as 'LoginTimeFloatDiff'
from sys.sysprocesses p with (readpast) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-web-api – Ajax Post:405方法不允许
- 在asp.net中的web.config的位置元素中有多个路径
- One to One 的数据库模型设计与NHibernate配置
- asp.net – 在网页上的ReportViewer控件中呈现时
- 通过HTTPS在ASP.NET中安全的会话cookie
- asp.net-mvc – 范围注释在无和100之间?
- asp.net-mvc – 当它被称为DocumentationControl
- ASP.NET MVC 3 – Ajax.BeginForm vs jQuery For
- asp.net-mvc – 用静态项绑定Html.DropDownList
- 在ASP.net中模拟HttpSessionState进行单元测试
热点阅读
