C#에서 실행될 때마다 매 30 초가 걸리고 SQL Server Management Studio에서 즉시 실행되면 즉시 완료되는 간단한 SQL 쿼리가 있습니다. . 후자의 경우 쿼리 실행 계획은 문제가없는 것으로 드러났으며 실행 시간은 몇 가지 간단한 작업을 통해 잘 분산됩니다.C# 및 SQL Server Management Studio에서 SQL 쿼리 실행 시간이 매우 다릅니다
쿼리가 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
매개 변수 스니핑 또는 다른 SET 옵션 일 가능성이 큽니다. 저장 프로 시저입니까? 문제 해결을 위해 SQL 프로파일 러 또는'sys.dm_exec_query_plan'을 사용하여 C# 1의 실행 계획을 가져 와서 Management Studio와 비교하십시오. –
이 단일 쿼리 또는 저장 프로 시저가 있습니까? SQL 프로파일 러 도구를 사용하여 응용 프로그램에서 쿼리가 실행되는 동안 자세한 추적을 실행하여 동일한 데이터베이스 명령이 실행되고 있는지 확인하고 이러한 방식으로 실행될 때 쿼리를 수행하는 데 걸리는 시간을 정확히 확인합니다. – NYSystemsAnalyst
현재 저장 프로 시저가 아니므로 컴파일 문제가 없어야합니다. 다른 SET 옵션이있을 수 있습니다. 나는 옵션이 양면에 기본값이라고 생각합니다. – Paul