gpt4 book ai didi

c# - 在 c# 和 sql 中循环性能更新记录

转载 作者:行者123 更新时间:2023-11-30 13:32:17 25 4
gpt4 key购买 nike

我需要从我的 C# 应用程序更新数据库中的 100 条记录。

我使用了一个 foreach 语句并调用了一个存储过程来更新每条记录,如下所示:

foreach (var record in recordList)
{
dbWatch.Start();
DbService.UpdateRecord(Id, ProcessDate, MessageID, task.Result.Email.TryTimes);
dbWatch.Stop();
LogMessage(string.Format("Single database row update toke:{0}",dbWatch.Elapsed));
}

一切正常,除了开始时,它需要大约 00:00:00.00123343 来更新每条记录,但随着它要更新的越来越多,它需要的时间也越来越长。在将近 1000 条记录后,更新每条记录大约需要 00:00:04 秒。

我想知道为什么会这样?

最佳答案

我认为这只是一个不正确的测量。您的循环不会重新启动 StopWatch,它只是连续启动和停止它。所以 Elapsed 会一直增加。

如果要测量整个时间:

dbWatch.Start();
foreach (var record in recordList)
{
DbService.UpdateRecord(Id, ProcessDate, MessageID, task.Result.Email.TryTimes);
}
dbWatch.Stop();
LogMessage(string.Format("All updates took:{0}",dbWatch.Elapsed));

如果您想测量每次迭代的时间,请使用 StopWatch.Restart :

foreach (var record in recordList)
{
dbWatch.Restart();
DbService.UpdateRecord(Id, ProcessDate, MessageID, task.Result.Email.TryTimes);
dbWatch.Stop();
LogMessage(string.Format("Single database row update took:{0}",dbWatch.Elapsed));
}

关于c# - 在 c# 和 sql 中循环性能更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com