此问题是previous asked question的后续操作。SQL Server 2005和.NET之间的延迟
我写了一个看起来像这样的简单程序。
string s;
do
{
using (SqlConnection conn = new SqlConnection("POOLEDCONN"))
{
using (SqlCommand cmd = new SqlCommand("", conn))
{
s = (string) cmd.ExecuteScalar();
Code2IncrementPerfomanceCounter
}
}
} while (!string.IsNullOrEmpty(s))
该查询返回一个字符串(nvarchar(max),当前最大大小为9k),SQL Server和.NET之间存在大量延迟。 SQL事件探查器说查询的持续时间为0毫秒,所以我认为它不是数据库。网络在1 ms内响应,因此它不应该是网络。
如果我在我们的测试服务器上运行这个代码(VMWare,SQL没有虚拟化),每秒最多会有600个循环。该应用程序不会消耗超过5%的cpu。为什么不是 更快?我必须使用流来从SQL或其他内容获取数据吗?
Thanx预先
尝试一次打开连接,而不是每次迭代都执行一次。 – Patrik 2009-08-17 15:04:38
你如何确定这个延迟? – 2009-08-17 09:25:10
与性能计数器 – JSC 2009-08-17 09:28:26