处理存储过程
本文关键字:存储过程 处理 | 更新日期: 2023-09-27 17:54:55
我正在开发一个控制台应用程序。在完成了初始检查和先决条件之后,我必须根据sql表的行引入5个线程。例如,如果我的表由1000行组成,那么我将不得不拆分行并平等地分配给所有5个线程,在这种情况下,我将进行拆分并分配(创建一个数据表)200行给每个线程,然后所有5个线程将同时调用SP与数据表。在SP中是否有任何事情要处理,因为它将由5个线程并行执行,我如何处理SP内的插入,删除和截断?如果同时执行多个插入、删除或截断查询,会出现问题吗?是否会发生冲突?或者SP中是否有任何锁功能,只允许SP中sql语句的一次操作?
由于我对这种要求不熟悉,我需要帮助找出可能发生的问题和克服它的方法。如果我能在这种情况下得到一些建议和技巧,那就太好了。
Thanks in advance.
abivenkat
看一下SQL Server中的隔离级别设置。最好将它设置得尽可能高,以防止数据损坏,但是,这可能会导致大量的锁,并且并行处理可能会使事情变得更糟,而不是更好。
根据你的过程的代码,你甚至可能会得到死锁,这将回滚一些调用,应该重新发出,这可能会导致额外的死锁,在你知道它之前,你的数据库完全处于fubar状态。
对于这样的数据密集型操作,我的建议是不要使它们完全瘫痪,只是一个一个地运行它们。如果你的服务器是一个多核机器,它甚至可能自己瘫痪一些东西。
当然,这些是宽挥手。为了获得特定的信息,需要分析数据的结构(以及任何索引)以及将要执行的代码。