在SQL Server数据库中创建记录以满足性能要求的最佳方法

时间:2011-04-12 13:50:37

标签: performance sql-server-2008

我目前正在开发一个数据库系统来存储来自机器的结果数据。数据通过以太网连接从机器到达C#应用程序,该应用程序解析数据并为数据库中的数据创建记录。我们的计算表明,我们需要每秒创建至少12000条记录才能跟上机器的步伐。这些记录分布在十个左右的表格中。

我的初步测试在一张桌子上给了我们每秒最多1800条记录。我的C#代码如下:

 SqlCommand command = new SqlCommand ("insert tablename (column names) values (values)", connection);
 command.ExecuteNonQuery ();

我承认这是一次天真的尝试。

我的问题是:

  1. 此记录创建率是否可行
  2. 达到要求率的最佳方法是什么?
  3. 数据库:SQL Server 2008

    语言:C#2.0

1 个答案:

答案 0 :(得分:2)

如果数据进入太快而无法“实时”加载到数据库中,则:

  • 升级,获得更好的硬件和软件。当然,新的设置可能还不够快(你能否在淘汰$$之前测试它?)
  • 推迟。有C#(或者其他什么,如果C#不够快)将数据流式传输到某个地方的格式化文件(逗号分隔,XML,无论如何),并定期关闭它,启动一个新文件,并让SQL加载找到的数据“最后”文件。
  • SQL 2008 R2具有“流式洞察”功能,可能适用于此处,但我绝对称之为高级主题。

现在请注意,每秒1字节的12000行每天不到1 GB ...如果每行有100个字节,那么每天不到100 GB,每月30 TB。你确定这些数字吗?