用于频繁更改数据的C#替代数据库?

时间:2015-04-05 20:22:17

标签: c# database transactions

我正在编写一个应用程序,它将对日志执行分析,以便进行图形显示。

将分析每行数据,并更新不同跟踪指标的计数器。

例如,以下一行:

[01:15:45] WARNING Application1 Error1 Message Text Goes Here

将转换为以下更新的指标:

  • 在01小时期间收到+1日志
  • 在15分钟内收到+1日志
  • 在第二轮45
  • 期间收到+1记录
  • +1警告严重性
  • 已收到+1 Application1申请
  • 收到+1 Error1错误

根据底层数据架构,单行最终可能是6个INSERT / UPDATE语句。随着指标数量的增加,数据库的负载也随之增加。如果我想跟踪上述30行的其他内容怎么办?这将是30个语句,根据数据库大小,UPDATE可能需要一段时间。

我认为存储这些数据的最简单方法就是在应用程序执行期间作为对象,除了我现在受内存限制的限制。此外,当应用程序重新启动时,它必须再次解析整个数据集。

是否还有其他类似数据库的技术来管理此类数据?我唯一能想到的就是这些数据特别的#34;事实是,会有大量的小变化。由于此工具将是单线程的,因此不会立即担心数据是事务性的。

这类数据或解决方案是否有一个术语可以帮助您搜索解决方案?当然有人之前遇到过这种需求。

1 个答案:

答案 0 :(得分:1)

正如您所说,使用自定义对象,每当达到30行时,通过XML或二进制序列化将其序列化为磁盘,然后释放内存,因此在这种情况下,您一次只能运行30行。在每天结束时或当您完成处理行时,创建一个线程或进程来反序列化数据,然后BULK将它们插入到数据库中,只需要一次数据库命中即可插入多行。