关于C#最佳实践的问题。我有一个类,它迭代遍历5000个对象,并为每个对象调用后端:
运行循环的类:
for(Object x in objects) //5000
{
nonStaticObject.callThisMethod(x.id);
}
DAL layer:
ReturnObject x = null;
using(SQLConnection...)
{
using(SQLCommand...)
{
// run something here
// if found, instantiate object x
}
}
由于我的代码(并行for循环)产生了一些高CPU,我进行了一些分析,热点似乎是(也应该是)我所做的所有数据库调用。由于这些调用非常频繁,我有一些问题。
在我看来,我的想法是如果可能的话应该重复使用连接。这是最佳实践吗?我想允许代码处理连接释放(使用using关键字),如何设置一个对所有5000个调用都可用的有效连接策略?我现在是否应该像现在这样每次调用该方法时创建一个连接?(我在某个地方读到过ADO连接池自动重用连接,所以这可能已经在后台完成了?)
感谢任何帮助