将日志存储在单独的或现有的数据库中?

Erw*_*ers 1 sql-server storage

在 .NET WebForms 项目中,我们希望在数据库中记录一年中的某些操作。估计日志的最大大小为 1GB(每天 20.000 条记录,包含 10 个字段),每天最多可能被查询 2 次。

我们正在讨论是否建议将日志记录表放在一个新数据库中(甚至可能在一个单独的服务器上),或者在我们现有的数据库中使用一个新表。

使用我们现有的数据库的好处是我们不需要在代码中建立新的连接,也不需要管理一个新的数据库。缺点可能是数据库无法处理它。

你有什么见解?你有什么建议吗?

Dan*_*her 5

出于您在问题中陈述的原因,我会使用相同的数据库。如果您担心性能或增长,请创建一个新的“日志记录”文件组并将日志记录表放在其上。如果将来事情变得不可收拾,您可以将 .ndf(包含新文件组的物理文件)移动到不同的物理驱动器。

即使你坚持使用同一台服务器并添加新数据库,效果也是相似的。您不必在客户端应用程序中创建新连接——您所要做的就是通过由三部分组成的名称 [database].[schema].[table] 来引用该表。

编辑:另外,考虑记录的信息是否应该“跟随”数据库的其余部分,或者它是否特定于某个服务器或环境。

  • 选择相同的数据库会受到负载的影响:假设每天 8 小时的工作日,每天 20000 条记录略低于每秒 1 条记录,这在这些天里根本不是很多。 (2认同)
  • 如果您的数据库有多个实例,例如开发、测试和生产,您需要确定日志是仅与每个实例相关,还是日志是“全局的”。 (2认同)