Sql 记录用户活动-哪个更好

Sql 记录用户活动-哪个更好,sql,asp.net-mvc-2,logging,c#-4.0,triggers,Sql,Asp.net Mvc 2,Logging,C# 4.0,Triggers,我使用Action Filter属性登录具有SQL数据库交互的特定操作上的用户活动。类似地,在表上的每个活动期间,我可以使用表上的触发器将活动记录到SQL表中。我想知道以上两种方法中哪一种是最佳实践(性能方面)我认为actionfilter肯定是最干净和最佳实践的方法,因为它位于应用层。在那里的部分好处是它的托管代码,如果出现问题,您可以轻松找到问题。还有一个好处是,所有代码都在一个位置 数据库触发器在许多公司都是一个大禁忌,因为它们有导致无限循环的习惯。一个不知情的程序员创建了一些逻辑,一次又

我使用Action Filter属性登录具有SQL数据库交互的特定操作上的用户活动。类似地,在表上的每个活动期间,我可以使用表上的触发器将活动记录到SQL表中。我想知道以上两种方法中哪一种是最佳实践(性能方面)

我认为actionfilter肯定是最干净和最佳实践的方法,因为它位于应用层。在那里的部分好处是它的托管代码,如果出现问题,您可以轻松找到问题。还有一个好处是,所有代码都在一个位置


数据库触发器在许多公司都是一个大禁忌,因为它们有导致无限循环的习惯。一个不知情的程序员创建了一些逻辑,一次又一次地踩在触发器上,导致数据库失败。有些公司确实允许使用触发器,但记录得很好,很少使用。希望这有帮助

日志记录的性能在很大程度上取决于系统架构。如果有3个负载平衡的web服务器访问一个主数据库,触发器将必须处理所有负载,而操作筛选器将负载分成三部分。在这种情况下,操作过滤器会更好

就最佳实践而言,我不会使用这两种方法中的任何一种。我将设置到另一台SQL server的事务复制。这种方法在运行时根本不会影响性能。事务日志已经生成,复制只会启动读取该日志的单独进程