






















因为测试的时候用的都是小数据量数据,程序运行正常,但是到了客户那里,碰到才100多条的数据,居然提示我连接超时,让我百思不得其解。一时间不知道怎么跟踪好。
寻寻觅觅,终于找到了一个跟踪数据连接池状态的方法:
http://www.yesky.com/SoftChannel/72342380484755456/20020930/1633376_2.shtml
顺便在这里抄录一下:
监视链接池化 要监视应用程序对链接池化的应用情况,可以使用随SQL Server发行的Profiler工具,或随微软Windows 2000发行的性能监视器。
要利用SQL Server Profiler 监视链接池化,操作如下:
要通过性能监视器监视链接池化,操作如下:
注意 .NET框架的RTM版本将另外包含一组ADO .NET性能计数器(这些计数器能与性能监视器结合起来使用),这些计数器用于为SQL Server .NET数据供应器监视并积累链接池化状态。
一跟踪,吓了一大跳,程序在显示DataGrid的时候,连接数从1猛增到100。然后保持这个连接数,然后连接超时的错误出现了。查询了一下这段代码。原来是因为在DataGrid的ItemDataBound事件中动态去读数据用来显示,读数据的时候打开的Connection没有及时关闭!!!
得出两点教训:
1.Connection一定要及时关闭。可以用using语法。
2.DataGrid的ItemDataBound最好不要去动态执行Select语句,这样会影响显示的性能。最好用left outer join的方法。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。