某些用户的查询速度很慢

Sup*_*bbs 11 performance sql-server-2008 sql-server t-sql

我有几个从 C# .NET web 应用程序调用的查询,它们对我来说总是很快(我是 SQL Server 的本地管理员),但对于一组用户(具有所需权限的域组),查询速度非常慢它在应用程序中超时的点。

什么会导致完全相同的查询对不同的用户以不同的方式运行?

更多信息:

  • 查询是 C# 代码中的内联 SQL,而不是存储过程
  • 该应用程序使用域身份验证,用户和我自己都通过该应用程序运行查询
  • 似乎这个问题是不同的计划,一个被缓存了,所以这就是为什么它对不同的用户是不同的。某些事情正在影响缓存,因为现在通过应用程序查询对我来说很慢,而在 SQL Server Management Studio 中查询速度很快。

Aar*_*and 5

如果参数相同(我假设这是什么意思exact same query),它不应该是参数嗅探(用户对错误的参数得到了一个糟糕的计划),而是用户得到了相同参数的不同计划(s)。这可能是因为像quoted_identifierand之类的设置arithabort,您可以sys.dm_exec_sessions对快速用户和慢速用户进行比较,或者可能是因为它们具有不同的默认架构,并且在没有架构前缀的情况下引用了对象。可能仍然涉及参数嗅探(因此其中之一的计划很糟糕)。


rot*_*eek 3

我看到了两个原因:1、参数嗅探2、连接设置不同。如果您运行whoisactive,它将显示不同的连接属性。我实际上有一篇关于此的博客文章,但我还没有从中清理公司的具体信息。(我也还没有启用我的博客);)