什么是SQL Server Profiler中的“审计注销”?

我正在运行数据导入(使用C#/ Linq),自然我试图尽可能优化我的查询。 为此,我使用SQL Server Profiler在数据库上运行跟踪,跟踪由我的SQLlogin名(这是一个可以唯一归因于我的数据导入过程的名称)过滤。

奇怪的是,我的大部分SQL语句真的很快:) – 很less有查询甚至打破了1毫秒的标记。 但是,在所有查询之间的间隔是EventClass为“审计login”或“审计注销”的几行,而“审计注销”的持续时间可以达到一分钟!

这是否与我在我的导入中使用事务的事实有关? 如果是这样,是否有任何方法可以find哪些是最大的查询,所以我可以清理这些?

如果我没有记错,审计注销的持续时间是连接打开的时间。 例如,与命令的速度无关 – 只是login“login”的时间。

login/注销事件与设置/拆除有关。 IIRC的时间是'已login时间',而不是像其他日志事件那样处理持续时间。

一般来说,除非您怀疑连接池pipe理等问题,否则将隐藏这些事件。

批次的原始时间应足以诊断实际活动的时间,包括任何交易的影响等。

Audit Logout事件类指示用户已注销(注销)Microsoft SQL Server。 此类中的事件由新连接或从连接池中重用的连接触发。

这是连接login的总时间,包括空闲时间,所以不表示性能问题。 此外,分析login/注销非常不可能导致性能问题。 您最好查找性能不佳的查询,可能是长时间运行的查询。

欲了解更多信息,我build议https://msdn.microsoft.com/en-us/library/ms175827.aspx 🙂

也值得注意的是,在这个答案审计login/注销可能只是意味着连接正在从/返回到连接池重用。