Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .Net和SQL-具有长时间运行进程的事务_C#_Asp.net_.net_Sql Server_Transactions - Fatal编程技术网

C# .Net和SQL-具有长时间运行进程的事务

C# .Net和SQL-具有长时间运行进程的事务,c#,asp.net,.net,sql-server,transactions,C#,Asp.net,.net,Sql Server,Transactions,我在.Net(使用Dapper的v4.6)中有一个名为BulkUpdate的方法,它将修改多个表,可以包含大约10000行或更多行。此操作可能需要几秒钟到几分钟,具体取决于插入的数据数量。由于我将更新多个相关表,因此我必须将所有操作都包含在TransactionScope中 我的问题是,在BulkUpdate方法进行时,避免其他读取请求(事务外部)被“锁定”或“等待”的最佳方法是什么。请,我不想在每次读取的开始添加设置隔离级别READ_UNCOMMITTED,也不想添加NO LOCK提示…还有其

我在.Net(使用Dapper的v4.6)中有一个名为BulkUpdate的方法,它将修改多个表,可以包含大约10000行或更多行。此操作可能需要几秒钟到几分钟,具体取决于插入的数据数量。由于我将更新多个相关表,因此我必须将所有操作都包含在
TransactionScope


我的问题是,在BulkUpdate方法进行时,避免其他读取请求(事务外部)被“锁定”或“等待”的最佳方法是什么。请,我不想在每次读取的开始添加
设置隔离级别READ_UNCOMMITTED
,也不想添加
NO LOCK
提示…还有其他解决方案吗?

请在前端侧C中使用任务概念,将100或1000行分割到每个任务,并同时运行。它可能对你完全有用。我已经用这样的方法提高了我的应用程序性能


您在事务作用域中设置的隔离级别是什么?插入10000行应该只需要很少的时间….@NathanSkerl我正在使用READ_UNCOMMITTED,也尝试过SNAPSHOT@MitchWheat是的,我同意,交给我的代码中有大量的逻辑,加起来就是处理时间。我知道我仍然需要优化和修复所有这些问题……但底线是,比方说我把它缩短到几秒钟,有没有办法防止其他用户阻塞?请不要使用READ_UNCOMMITTED;而是将数据库置于RCSI/快照隔离中,并在插入中使用默认隔离级别(READ_COMMITTED)。所涉及数据(行范围)的并发读卡器不会被阻止;编写器可能正在运行。3小时的进程。我们减少到10分钟以下。。。请试着让你知道好的。。。