我有一个程序可以访问数据库并执行具有数据库调用的不同方法。我对所有事情都使用了一个连接,但它在执行一项长任务时导致超时:我基本上必须遍历 6000 多条记录并执行一个存储过程。我的事情导致了超时,因为我对所有事情都只使用了一个数据库连接。
然后我更改了代码,因此我为使用“使用”方法调用的每个方法打开和关闭连接。
我应该如何处理将被大量调用的方法。每次访问该方法时都应该打开/关闭连接吗?
还是有不同的方法?
我做这样的事情:
foreach(record in MyCollection)//6000
{
using(connection = new SqlConnection(conString))
{
singledata = GetSingleData(record);
}
}
这是一个 GetSingleData()
private byte[] GetSingleData(MyObject Data)
{
byte[] singleData = null;
using(SqlCommans......)
{
try
{
.......
//executing stored proc to get just a single row
reader = command.ExecuteReader();
while(reader.Read())
{
singleData = (byte[])reader["ColumnName"];
}
}
catch(SqlException ex)
{
if(!reader.isClosed)
reader.Close();
}
}
return singleData;
}
它是否有效,或者我可以设置某种计数器,对于每 500 条记录,我可以检查连接是否已关闭,如果它重新打开它。
谢谢