我们需要在我们的系统中构建报告。我们无法在桌面上在线构建它们,原因有两个:
因此,我们需要收集有关用户操作的事实。今天我们有一些工作,分析CDC changes。但这种方法存在一些问题:
但它有助于我们收集所有操作(甚至由sql更新脚本制作)并且它是异步的(对用户操作性能没有影响)。
另一种方法 - 在业务逻辑层上收集事实,并将它们发送到另一个系统或保存到表。但是它同步操作,并且难以收集sql脚本所产生的事实。
那么,最佳方法是什么? 要求:
答案 0 :(得分:4)
我假设您不想从Transaction Server报告。因此,您可能需要通过复制(合并或事务复制)来设置报告服务器。
答案 1 :(得分:0)
您可以使用更改数据捕获(CDC)或日志记录框架,也可以同时使用它们。
您可以将自定义日志记录规则嵌入到业务逻辑层&使用Log4net或任何其他框架,通过应用程序中的日志框架(文本文件,单独的数据库表等)单独记录它们。
理想情况下,如果将此日志写入单独的数据库,则可以生成各种自定义报告。如果需要记录每个数据库活动,可以设置更改数据捕获或使用SQL触发器仅捕获某些事件(这将需要设置和测试中的大部分工作)。我找到的一些有用的链接是