2011-05-18 56 views
0

我正在使用Action Filter属性来记录具有SQL数据库交互的特定操作的用户活动。同样,我可以在表上的每个活动期间使用表上的触发器在SQL表中记录活动。我想知道上述两种方法中哪一种是最佳做法(性能明智)日志用户活动 - 哪个更好

回答

1

我认为actionfilter肯定是最干净和最好的做法,因为它在应用程序层。存在的部分好处就是它的托管代码,如果有什么问题可以轻松找到问题。所有代码也都在同一个位置,这也有好处。

数据库触发器在很多公司中都是不可或缺的,因为他们有一个习惯导致无限循环的习惯,一个不知名的程序员创建一些反复触发触发器的逻辑,导致数据库失败。一些公司确实允许使用触发器,但记录完备且使用很少。希望这可以帮助。

+0

Got you !!谢谢!! – Gokul 2011-05-18 20:05:38

0

日志的性能在很大程度上取决于系统架构。如果您有3个负载平衡的Web服务器击中一个主数据库,触发器将不得不处理所有负载,而Action Filters会将负载分成三部分。在这种情况下,动作过滤器会更好。

就最佳实践而言,我不会使用任何一种方法。我会设置事务复制到另一个SQL服务器。这种方法在不影响性能的情况下运行。事务日志已经被生成,复制将启动一个单独的进程读取该日志。