我有 exe 在服务器上连续运行以批处理数千个文件,文件中的数据被插入到数据库中,所有文件都使用相同的连接字符串。我已经使用 .net 4 的 TPL 来提高性能。代码的基本流程如下,因为我对连接池不太了解,所以下面的方法会给我带来麻烦请建议。谢谢。
流程:1.创建任务数组(50个文件大约50个任务)2.将每个任务添加到数组任务3.等待所有任务并重复接下来的50个文件
Task[] taskArry = new Task[50];
for (int i = 0; i < 50; i++)
{
taskArry[i]=(Task.Factory.StartNew(() => InstanceDataObject.InserData()));
//var t2 = Task.Factory.StartNew(() => InsertData());
}
Task.WaitAll(taskArry);
这里要注意的关键点是,我正在为 InsertData() 方法中的每个任务启动我的连接对象,因为每个任务都必须使用事务执行,因此为 50 个任务创建了 50 个连接,这会影响性能吗?
internal static void InserData(string insPath, int filingId)
{
try
{
DataAccess dataAcess = new DataAccess(true);
// insert operation here
dataAcess.CommitTransaction();
}
finally
{
dataAcess.Dispose();
_dbmanager = null;
}
}
我正在使用像这样的连接字符串 "Server=Test;User id=user;Password=@1234;database=test" 因为连接字符串启用了默认连接池我没有设置任何与池相关的参数。Shall i have to set the parameter regarding connection pooling?
对于我的场景