有效的交易管理

时间:2015-11-11 00:47:50

标签: c# sql queue task-parallel-library sql-server-2014

我正在寻求有关设计的建议,以有效地提供可扩展性并减少对我的要求的争用:

我目前的环境是使用带有队列,Windows服务和sql 2014,c#.net等的消息传递体系结构。我们需要将数据保存到临时表中,对此数据进行一些验证,然后在验证完成后加载将数据放入最终表并对最终表中的数据进行更多计算,一旦此工作流完成,然后从登台表中清除这些特定数据行。进入临时表的负载可以是每个负载几千行。队列中的每条消息都会启动此过程,我们预计在一天中的短时间内会有大约1000到2000条消息。 由于使用队列的性质和尝试构建可扩展的体系结构,在我们的窗口服务中,我们希望读取一组队列的消息,每次读取10个,每个消息并行运行几个线程,每个线程拥有一个负责加载登台登台表的事务,在进程中验证登台数据 - 想象映射,丰富等,并将数据转移到最终目标表,在最终表上进行一些计算,然后删除相关行临时表。听起来很像争论! 两个表都有一个跨3列和PK的唯一索引,但不是必需的1对1关系。在分段中大约有20列,在最终表中有15列,所以不是很宽......我也不想使用msdtc,因为我们将使用多个sql连接。我意识到在2008年微软推出了轻量级的sql事务来减轻负担。

我没有考虑锁定柱状存储表,并且不希望将脏读取用作黑客。

如果您在成功完成与此类似的事情之前我真的想听听您的意见! PS请注意SQL 2014,C#,TPL。 感谢

0 个答案:

没有答案