【发布时间】:2013-01-05 09:51:06
【问题描述】:
我正在开发一个控制台应用程序。完成初步检查和先决条件后,我必须根据 sql 表的行引入 5 个线程。例如,如果我的表包含 1000 行,那么我将不得不拆分行并平均分配给所有 5 个线程,在这种情况下,我将进行拆分并为每个线程分配(创建数据表)200 行线程,然后所有 5 个线程将使用数据表同时调用 SP。在 SP 中是否有任何事情需要处理,因为它将由 5 个线程并行执行,我如何处理 SP 内的插入、删除和截断?会不会有问题,如果同时执行多个插入或删除或截断查询,是否会发生冲突?或者SP中是否有任何锁定功能,只允许对SP中的一条sql语句进行一次操作?
由于我对这种要求不熟悉,我需要帮助找出可能发生的问题以及克服它的方法。如果我能在这种情况下得到任何提示和技巧,那就太好了..
提前谢谢..
abivenkat
【问题讨论】:
-
你能说明这个过程是做什么的吗?
-
你能解释一下为什么要使用 5 个线程来查询表吗?这似乎是一个非常奇怪的要求。我本来预计可能有 1 个线程调用 sproc,并且可能有多个线程来处理输出,但这似乎很奇怪。
-
@VenkatramananLakshmanan ..您应该知道,您刚才所说的并非总是如此。这对我来说听起来像是过早的优化..
-
@VenkatramananLakshmanan 你真的证明了这个理论吗?您是否声称 10 个线程会比 5 个线程快?就像我说的,我理解如果您使用 1 个线程获取数据,然后使用多个线程处理结果。但是,我相信您猜测 5 次查询会更快。想一想 - 这没有任何意义。
-
5 个人在 1 个炉子上烹饪 5 顿饭,如果按顺序使用会更快。
标签: c# sql sql-server multithreading stored-procedures