在SQL Server 2005中插入大量数据

问题描述 投票:0回答:1

我们有一个应用程序(用 C# 编写)将实时股票市场价格存储在数据库 (SQL Server 2005) 中。单日插入约100万条记录。现在我们正在添加更多的市场细分,记录数量将增加一倍(200 万/天)。

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

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

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

目前我正在使用XML批量插入方法(存储过程中的OPENXML)。

我想了解会员对此的不同看法。

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

c# database sql-server-2005
1个回答
0
投票

你的问题是阅读,但标题暗示写作?

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

拖动数据、将其缓存在客户端并在那里聚合通常是愚蠢的。

如果批量上传:

  • SQLBulkCopy 或类似于临时表
  • 从暂存到决赛桌的单次写入

如果是单次上传,直接插入即可

每天一百万行对于 SQL Server(“Orable、MySQL、DB2 等)的能力来说是一个舍入误差”

示例:每秒 35k 事务(不是行)

© www.soinside.com 2019 - 2024. All rights reserved.