4

我正在开发一个控制台应用程序。完成初步检查和先决条件后,我必须根据 sql 表的行引入 5 个线程。例如,如果我的表包含 1000 行,那么我将不得不拆分行并平均分配给所有 5 个线程,在这种情况下,我将进行拆分并为每个线程分配(创建数据表)200 行线程,然后所有 5 个线程将使用数据表同时调用 SP。在 SP 中是否有任何事情需要处理,因为它将由 5 个线程并行执行,我如何处理 SP 内的插入、删除和截断?会不会有问题,如果同时执行多个插入或删除或截断查询,是否会发生冲突?或者SP中是否有任何锁定功能只允许对SP中的sql语句进行一次操作?

由于我对这种要求不熟悉,我需要帮助找出可能发生的问题以及克服它的方法。如果我能在这种情况下得到任何提示和技巧,那就太好了..

提前致谢..

阿比文卡特

4

1 回答 1

0

查看 SQL Server 中的ISOLATION LEVEL设置。最好将其设置得尽可能高,以防止数据损坏,但是,这可能并且将导致大量锁,并且并行执行可能会使事情变得更糟,而不是更好。

根据您的过程的代码,您甚至可能会遇到死锁,这只会回滚一些应该重新发出的调用,这可能会导致额外的死锁,并且在您知道之前,您的数据库处于完全混乱的状态。

对于此类数据密集型操作,我建议不要让它们瘫痪,只需一个接一个地运行它们。如果您的服务器是多核机器,它甚至可能自行瘫痪。

当然,这些都是广泛的手波。要获取特定信息,需要分析数据的结构(以及任何索引)以及将要执行的代码。

于 2013-01-22T08:19:14.647 回答