什么是SQL Server Profiler中的"审核注销"?

Sha*_*ica 88 c# linq sql-server-2005 sql-server-profiler linq-to-sql

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

奇怪的是,我的大多数SQL语句都非常快:) - 很少有查询甚至突破1ms标记.但是我的所有查询之间的间隔是几行,其中EventClass是"审核登录"或"审核注销" - 并且"审核注销"的持续时间可以长达一分钟!

这与我在导入中使用事务的事实有关吗?如果是这样,有没有办法找到哪些是重要的查询,所以我可以清理它们?

Thi*_*ies 79

如果我记得正确,审核注销的持续时间是连接打开的时间.例如,与命令的速度无关 - 只是登录"登录"的时间.

  • 有意思,谢谢!但是,当"登录"和"注销"之间的查询读取次数仅为56时,为什么读取次数如此之高(~400,000)? (9认同)
  • 它是从登录到注销的毫秒数。不是连接内查询的实际使用次数。400 000ms 大约是 7 分钟。查看 CPU、读取和写入列,尝试找到 CPU 和/或磁盘使用率较高的查询 - 两者都会影响性能。 (3认同)

Rub*_*ink 12

登录/退出事件与设置/拆除有关.IIRC的时间是"已登录的时间",而不是与其他日志事件一样的处理持续时间.

通常,除非您怀疑连接池管理存在问题,否则会隐藏这些事件.

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


Ror*_*ory 6

另外值得注意的是,在这个答案中,审核登录/注销可能只是意味着连接正在从连接池中重用/返回到连接池。

您可以使用事件中的另一个字段来确定它是连接池事件还是“真实”登录/注销。


小智 5

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

这是连接登录的总时间,包括空闲时间,因此并不表示存在性能问题。此外,分析登录/注销不太可能导致性能问题。您最好寻找性能不佳的查询,可能是长时间运行的查询。

有关更多信息,我建议https://msdn.microsoft.com/en-us/library/ms175827.aspx :)