我看到一些间歇性的速度减慢 \ sql 超时错误,我无法确定原因。我已经拼凑了一些线索,但我需要一些帮助来确定可能的后续步骤。
问题
我们有一个表,其中包含 10 多万条记录,我们从 Web 应用程序运行异步计数。该表经常被写入。有时计数需要 2 分钟,有时会超时,有时会在一秒内返回,所有这些都来自同一生成的 sql。
我有一个理论,连接池中的所有连接都很忙,所以它正在等待......但我不知道有什么方法可以证明这一点。
我们的设置
- SQL 2012、Entity Framework 5.0 和 MVC Web API。
Clues
- 在响应缓慢期间,我可以通过 sql 运行相同的 sql
管理工作室,它在一秒钟内返回。
- 在响应缓慢期间,网站的所有其他功能
表现良好,缓慢仅限于该区域。
- 问题仅发生在生产数据库上。我尝试在开发中重现它,但没有任何运气。
到目前为止我尝试过的
Details
查看 SQL Profiler,这里是运行的查询。
-- network protocol: LPC
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read uncommitted
exec sp_executesql N'SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[CampaignSendResults] AS [Extent1]
WHERE ([Extent1].[CampaignId] = @p__linq__0) AND (0 = CAST( [Extent1].[ResultType] AS int))
) AS [GroupBy1]',N'@p__linq__0 uniqueidentifier',@p__linq__0='0BACD499-A665-4721-902A-37EAB49A8A8C'
exec sp_executesql N'SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[CampaignSendResults] AS [Extent1]
WHERE ([Extent1].[CampaignId] = @p__linq__0) AND (0 = CAST( [Extent1].[ResultType] AS int)) AND ( CAST( [Extent1].[SendDate] AS datetime2) >= @p__linq__1)
) AS [GroupBy1]',N'@p__linq__0 uniqueidentifier,@p__linq__1 datetime2(7)',@p__linq__0='0BACD499-A665-4721-902A-37EAB49A8A8C',@p__linq__1='2013-07-23 00:35:12.6930000'
问题可能是
set arithabort off
它应该是
set arithabort on
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)