如何在单个表中处理并行CRUD的性能?

时间:2013-10-22 10:35:37

标签: sql-server performance orm parallel-processing sql-server-2012

我有一个名为“每日结果”的表,其中包含我的应用程序中所有用户的计算信息。这个信息是在为每个用户运行计算方法后生成的。这个方法使用多个相对表的数据。

在我的应用程序中执行某些操作后,我需要为一个或所有用户重新计算“DailyResult”表的信息。

在这种情况下我将创建线程来做calc.but我的问题是当多用户调用calc方法时,线程将等待资源表(“DailyResult”)释放。该方法需要时间。

我们使用MVC 3,Sql server Enterprise 2012 64位,Dapper ORM用于插入 - 删除 - 更新信息。

我们已经使用nhibrenate但必须用dapper替换它。更好但是对于超过2000的并行用户,在Dailyresult表中插入删除更新信息需要花费时间。

处理此问题的最佳解决方案是什么,以达到最佳性能。您的建议是什么?

1 个答案:

答案 0 :(得分:0)

我假设你在“reCalculate”阶段访问该表是什么?因此 - 如果您可以编辑用于从应用程序中的表中获取数据的查询,请添加“set transaction isolation level read uncommitted;”在开头