gpt4 book ai didi

c# - C# 和 SQL Server Management Studio 中 SQL 查询的执行时间非常不同

转载 作者:太空狗 更新时间:2023-10-29 23:19:01 24 4
gpt4 key购买 nike

我有一个简单的 SQL 查询,当从 C# 运行时需要超过 30 秒然后每次都超时,而当在 SQL Server Management Studio 上运行时会立即成功完成。在后一种情况下,查询执行计划不会显示任何问题,并且通过一些简单的操作可以很好地分散执行时间。

当查询从 C# 运行时,我运行了“EXEC sp_who2”,它被列为占用 29,000 毫秒的 CPU 时间,并且没有被任何东西阻塞。

我不知道如何开始解决这个问题。有没有人有一些见解?

查询是:

SELECT
c.lngId,
...
FROM tblCase c
INNER JOIN tblCaseStatus s ON s.lngId = c.lngId
INNER JOIN tblCaseStatusType t ON t.lngId = s.lngId
INNER JOIN [Another Database]..tblCompany cm ON cm.lngId = cs.lngCompanyId
WHERE t.lngId = 25
AND c.IsDeleted = 0
AND s.lngStatus = 1

最佳答案

首先,从 C# 运行时提取查询的查询计划:

select p.query_plan, *
from sys.dm_exec_requests r
cross apply sys.dm_exec_query_plan(r.plan_handle) p
where r.session_id = <spid of C# connection>

然后将其与在 SSMS session 下执行的计划进行比较(只需单击“在工具栏中显示实际计划”)。

并且,作为一般规则,始终尝试应用有条不紊的方法而不是猜测。 Wait and Queues是一种非常好的、经过验证的 SQL Server 性能故障排除方法。

关于c# - C# 和 SQL Server Management Studio 中 SQL 查询的执行时间非常不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com