在SQL Server 2005中插入大量数据

时间:2010-03-16 14:50:43

标签: c# database sql-server-2005

我们有一个应用程序(用c#编写)来存储数据库中的实时股票市场价格(SQL Server 2005)。它在一天内插入约1百万条记录。现在我们正在增加一些市场细分市场,并且记录的数量将是双倍(2百万/天)。

目前,每秒平均记录插入数约为50,最大值为450,最小值为0.

要检查某些条件,我在价格表上使用了服务代理(异步触发器)。它此时运行正常(CPU利用率约为35%)。

现在我打算创建当前股票价格的内存数据集。我们想做一些简单的计算。

目前我正在使用xml批量插入方法。 (Storred Proc中的OPENXML)

我想知道成员对此的不同看法。

请提供处理此类情况的方法。

1 个答案:

答案 0 :(得分:0)

你的问题是阅读,但标题意味着写作?

在阅读时,如果要进行某些处理,请考虑(不要盲目使用)临时表来缓存数据。但是,通过简单的计算,我假设聚合生活AVG,MAX等?

拖动数据,将其缓存在客户端并在那里聚合它通常是无聊的。

如果批量上传:

  • SQLBulkCopy或类似于临时表
  • 使用
  • 从分段写入最终表格

如果是单次上传,只需插入

即可

每天一百万行是SQL Server('Orable,MySQL,DB2等)能够实现的舍入错误

示例:35k transaction (not rows) per second