在企业项目中,我需要记录大量数据(原始值、修改值、更改数据的用户等)。我使用 NLog 记录此类数据,使用 ELMAH 记录异常。我不确定是使用单独的数据库来存储日志信息还是使用主数据库。使用单独数据库的优点是:
- 日志和异常不是业务的一部分,因此它们不需要在主数据库中。
- 主数据库上的负载将减少,从而获得更好的性能。
缺点是:
- 如果日志数据库停止,我们将错过在这个项目中非常重要的日志。(尽管如果记录不成功,我们可以阻止保存)
- 处理交易会很困难。(如果日志保存了,但数据没有)
当然还有更多的优点和缺点,但总而言之,我需要知道:在企业软件中使用大型事务性 RDBMS 的最佳实践是什么?或者它可能会因某些因素而因项目而异?