从多个线程读取SQL数据

时间:2013-03-03 18:52:50

标签: c# .net sql-server multithreading

我有一个简单的任务 - 从SQL表读取数据,处理它,一旦完成 - 更新DB中的字段(set processed = true),所以每条记录只应处理一次。

您能告诉我,我可以使用哪种技术来实现多线程?这意味着,从多个线程的表中读取数据。

2 个答案:

答案 0 :(得分:2)

如果要在多个线程中读取数据而不重叠,则可以尝试分页。您可以让每个线程读取不同的页面。例如,您可以让第一个线程读取前20个记录,处理每个记录,然后为每个记录设置processed = true,而第二个线程对接下来的20个记录执行相同操作,依此类推。

有关多线程分页的详细信息,请查看此链接。 http://ericniemiec.wordpress.com/2010/06/10/paging-records-in-sql-server-2008-for-processing-database-records-on-different-threads-in-c/

答案 1 :(得分:1)

如果您使用ef并使用DataContext,您应该知道DataContext不是线程安全的。像MsSQL这样的数据库管理系统是线程安全的。我更喜欢你读这个question