Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 有没有办法从C代码检查池中的连接?_Sql Server 2008_C# 4.0 - Fatal编程技术网

Sql server 2008 有没有办法从C代码检查池中的连接?

Sql server 2008 有没有办法从C代码检查池中的连接?,sql-server-2008,c#-4.0,Sql Server 2008,C# 4.0,我正在开发一个模糊处理工具,它基本上是在一个专用的SQL server(仅用于此工具)上敲打一个DB,以检索记录,执行一些数据操作,然后更新这些记录。这一切都是通过LINQtoSQL完成的。我使用任务和并行循环来同时运行尽可能多的更新。所有SQL都是从同一个连接字符串执行的。最初我使用默认的最大连接池大小(100),假设它足够了。在运行了几个小时后(由于该工具正在更新数百万条记录),它似乎开始呕吐,因为它无法建立连接。在查看连接池之后,我注意到我已经达到了100的极限。因此,我将限制提高到200

我正在开发一个模糊处理工具,它基本上是在一个专用的SQL server(仅用于此工具)上敲打一个DB,以检索记录,执行一些数据操作,然后更新这些记录。这一切都是通过LINQtoSQL完成的。我使用任务和并行循环来同时运行尽可能多的更新。所有SQL都是从同一个连接字符串执行的。最初我使用默认的最大连接池大小(100),假设它足够了。在运行了几个小时后(由于该工具正在更新数百万条记录),它似乎开始呕吐,因为它无法建立连接。在查看连接池之后,我注意到我已经达到了100的极限。因此,我将限制提高到200。这是更好的工作,但我的一个进程(没有提到这在几个进程中运行)最终失败后约3小时。连接池似乎并没有被过度使用,因此我只能挠头了。我已经检查了代码中的许多区域,以确保所有连接都已被处理,它们都已被处理。我甚至将所有连接代码移到了一个中心位置,所以现在代码只从一个位置建立连接。为了排除连接池被最大化的想法,我想使用C#查询池,以查看尝试连接时异常的限制。这可能吗?框架是否有代码来执行此操作,或者是否需要我运行SQL stmt来确定此操作

仅供参考:我正在使用4.0和SQL 2008


提前谢谢

看起来我可以使用PerfMon监视连接池。这表明我实际上达到了游泳池的极限,令我惊讶的是,游泳池并不像我想象的那样是200。问题解决了!有时,我们创建了如此复杂的代码,导致了我们自己的问题

旁注-我最初使用的是sp_who2,但当我出现异常时,池被清理,因此我无法获得准确的读数