gpt4 book ai didi

asp.net - 哪个更快 : Entity Framework vs stored procedures?

转载 作者:行者123 更新时间:2023-12-02 17:46:41 27 4
gpt4 key购买 nike

当涉及到在 ARRAY 对象中插入大量数据(比如 100.000 行)时,你认为哪个会更快?

  1. 通过 Entity Framework ? (当你插入 100.000 行时调用 SaveChanges())
  2. 使用 INSERT 存储过程循环每一行(100.000 次)?

如果你也能提供一个引用,那就太棒了。

谢谢

最佳答案

循环 100K 次调用存储过程将至少创建 100K 跨进程和/或跨网络调用会很慢。

如果您使用的是 SQL 服务器,另一种选择是使用 TVP (table value paramaters) 来避免从 C# 代码循环调用插入。它允许您在一次调用中将数据表传递给存储过程。

从上面的链接中,他们一次推荐 1000 行(但始终针对您的应用进行测量和试验):

Using table-valued parameters is comparable to other ways of using set-based variables; however, using table-valued parameters frequently can be faster for large data sets. Compared to bulk operations that have a greater startup cost than table-valued parameters, table-valued parameters perform well for inserting less than 1000 rows.

因此,也许尝试循环 100 次,一次传递 1000 行(而不是跨越边界 100K 次)。

您可能还想重新评估为什么 asp.net 在您的应用程序中一次有 10 万个项目。是否传递给服务器并立即保存在内存中,可能存在内存问题?那能分手吗?您是否在 asp.net 读取和处理 100K 行的地方进行数据处理,而 sql server 代理作业可能更合适?如果您提供有关应用程序数据流及其功能的更多详细信息,人们可能会提供更多选项。

关于asp.net - 哪个更快 : Entity Framework vs stored procedures?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702756/

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