链接池溢出的问题分析与解决方案

今日又有项目报错:
Copy to Clipboard Liehuo.Net Codes引用的内容: [www.veryhuo.com]
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

第一反应就是那个兄弟写了DataReader没有关闭,这不开始整项目查找DataReader的身影。哎,还别说,真他妈有2个reader在那里开着呢。过了半天,错误卷土重来。这可把我郁闷坏了,接下来想到的当然是查看数据链接数,和查找是那条sql对应的链接没关闭。

网上说查看链接数的方式各不一致,没有个准的说法。

首先:

Copy to Clipboard Liehuo.Net Codes引用的内容: [www.veryhuo.com]
select * from dbo.sysprocesses where DB_NAME(dbid)='youDbName'

查不出来啥,这也非所谓的连接数。

当然它和连接数还是有一定的对应关系,只要一刷,总数就涨几个,重置后,半小时就到了600多。谁呢?谁干的呢?找不到是那条语句对应的链接。没法,只能顺藤摸瓜了,既然知道这个东东和连接有一定的关系,那就看看它的具体信息吧。

查msdn,知道字段sql_handle是对应sql的句本。接下来的事情,当然是找句本对应的sql了。

Copy to Clipboard Liehuo.Net Codes引用的内容: [www.veryhuo.com]
use master SELECT db_name(s1.dbid), s2.text FROM sysprocesses AS s1 CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 WHERE s2.objectid is null ORDER BY s1.sql_handle

这下就知道是什么东东了,就知道是哪个语句对应的连接数高了,知道语句了,就知道对应的操作是那个没有关闭连接了。。。

这样找连接数过高的问题,是不是比较方便呢?

http://www.veryhuo.com/a/view/10929.html

转载于:https://www.cnblogs.com/MakethingsEasy/p/3499753.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值