asp.net – 如何监视SQL Server中的活动连接池?
发布时间:2020-12-15 23:37:00 所属栏目: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-mvc – 访问ASP.NET MVC应用程序中的控制器/操作列
- 在asp.net中HttpContext.Current.User和Thread.CurrentPrin
- asp.net-mvc-3 – 与BCrypt.net合作
- 为什么NuPack生成的NinjectMVC3.cs无法编译? (或者ASP.NET
- asp.net-mvc – ASP.NET MVC 5,Identity,Unity容器解决方案
- asp.net-mvc – 允许使用数字中的点和逗号,而不仅仅是小数
- asp.net-mvc-4 – ASP.NET MVC 4单独项目中的区域不工作(查
- asp.net – viewStateEncryptionMode =“始终”不加密
- 使用C#登录带验证码的网站
- asp.net-mvc – 如何使用Html.DropDownList为默认选项设置值
推荐文章
站长推荐
热点阅读