使用连接池或至少假设在调用之间未关闭连接的情况下,是否存在网络或服务器性能差异,以及具有多个结果集的一个存储过程执行与多个存储过程执行之间的重要程度?
在伪代码中,类似
using(new connection)
{
using (datareader dr = connection.Execute(Command))
{
while (dr.NextResult())
{
while (dr.Read())
{
SomeContainer.Add(Something.Parse(dr));
}
}
}
}
与
using(new connection)
{
using (datareader dr = connection.Execute(Command))
{
while (dr.Read())
{
SomeContainer.Add(Something.Parse(dr));
}
}
using (datareader dr = connection.Execute(Command))
{
while (dr.Read())
{
SomeContainer.Add(Something.Parse(dr));
}
}
}
解决方法:
第一个是到服务器的单次往返,第二个是不同的往返.由于网络延迟,解析请求的时间,建立执行上下文的时间等原因,往返会产生一定的损失.但是,除了最关键的应用程序之外,对于所有其他事物而言,这种损失几乎可以忽略不计.
因此,请做任何更容易理解,编码,调试和维护的工作(恕我直言,这是第二种选择).您可能无法衡量差异.