我有一些后台服务每小时运行一次,循环遍历可能有 1000 多个数据库,它打开它们并检查需要操作的数据。
有一些性能问题最好,因为我可以告诉 map 返回调用
SqlConnection.ClearPool()
。在我们繁忙的时间里,这通常似乎需要大约 0.45 秒。
在 2023 年似乎不再需要这样做(除了需要删除数据库的地方),而使用语句就足够了吗?
这就是代码的大致样子——无论哪种方式的任何肯定,或者在哪里查看
SqlConnection.ClearPool
的性能将不胜感激
using (var masterContext = Context.CreateNew())
{
var thousandsOfCompanies = GetActiveCompanies(masterContext).ToList();
foreach (var company in thousandsOfCompanies )
{
try
{
using (var context = Helper.CreateForDatabase(company.ServerName, company.DatabaseName))
{
// Do things
masterContext.SaveChanges();
SqlConnection.ClearPool(context.SqlConnection);
}
}
catch (Exception exception)
{
exception.Log();
}
}
}