Совсем другое время выполнения SQL-запроса в C# и Studio управления SQL Server

У меня есть простой SQL-запрос, который, когда выполнено от C# принимает 30 секунд затем времена каждый раз, тогда как при выполнении на Studio управления SQL Server успешно завершается немедленно. В последнем случае план выполнения запросов ничего не показывает беспокойство, и время выполнения распространено приятно посредством нескольких простых операций.

Я работал'EXEC sp_who2'в то время как запрос работает от C#, и он перечислен как взятие 29 000 миллисекунд процессорного времени и не заблокирован ничем.

Я понятия не имею, как начать решать это. У кого-либо есть некоторое понимание?

Запрос:

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
5
задан shA.t 6 June 2015 в 13:59
поделиться

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 (просто щелкните Показать фактический план на панели инструментов ).

И, как правило, всегда старайтесь применять методический подход, а не догадываться. Ожидание и очереди - очень хорошая, проверенная методология устранения неполадок производительности для SQL Server.

5
ответ дан 14 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: