0
|
Yaakov Ellis NevilleDNZ · 技术社区 · 15 年前 |
1
1
我的第一个猜测是,您正在使用插入操作耗尽与数据库的可用连接,而Web应用程序正在等待与数据库的连接。 你有几个选择。
另一个选项,可能性稍小,但它可能是执行大容量插入的Web应用程序,它占用了服务器上其他Web应用程序的所有CPU时间,阻止使用。如果您还没有这样做,请将应用程序拆分到自己的池中,以便监视其负载。 |
2
1
我不知道LinqToSQL,但NHibernate特别指出,将其用于批量插入是一个坏主意。我发现ADO.NET中的数组绑定非常快, Here is an article 解释如何使用Oracle,但它也应该与其他供应商合作。 |
3
1
在Web应用程序中执行长时间操作似乎是个坏主意(例如,您的IIS服务器可以无理由地重新启动应用程序)。将长应用程序拆分为Web应用程序和服务应用程序。在服务应用程序中执行长时间操作。通过wcf&pipes在他们之间进行通信。 |
4
0
最终解决方案 :我将数据插入从LinqToSQL更改为使用 SqlBulkCopy 通过DATABATE。第一次这样做时,我在试图构建一个内存中有200万行的数据表时遇到了一个内存不足的异常。因此,我一次添加50000行,并使用sqlblkcopy(批处理率:10000)将它们加载到数据库中,然后清除dataTable行集合。我现在在108秒内进入210万行(大约每秒20000行;昨晚的速率平均为每秒200行,L2s)。随着数据插入性能的提高,应用程序范围内的无响应性已经消失。 |
5
0
在Web应用程序中,在将数据加载到数据库的整个过程中,阻塞一些重要信息的锁语句可能会重新出现。 |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |