[SQL] C # 및 SQL Server 관리 Studio에서 SQL 쿼리의 매우 다른 실행 시간
SQLC # 및 SQL Server 관리 Studio에서 SQL 쿼리의 매우 다른 실행 시간
전 C #에서 실행하는 경우가 SQL Server Management Studio를 실행할 때 시간 초과 때마다, 성공적으로 즉시 완료 반면 다음을 통해 30 초 걸리는 간단한 SQL 쿼리를 가지고있다. 후자의 경우, 쿼리 실행 계획을 괴롭히는 아무것도 알 수없고, 실행 시간은 몇 가지 간단한 작업을 통해 잘 전염됩니다.
나는 쿼리가 C #에서 실행되는 동안 'EXEC의 sp_who2'를 실행했습니다, 그것은 CPU 시간을 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
해결법
-
==============================
1.C #을에서 실행될 때 쿼리의 쿼리 계획을 추출, 시작하려면 :
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 서버의 성능 문제 해결 방법입니다.
from https://stackoverflow.com/questions/3070653/very-different-execution-times-of-sql-query-in-c-sharp-and-sql-server-management by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 현재 날짜를 기준으로 정렬 다가오는 생일 (0) | 2020.07.09 |
---|---|
[SQL] 두 날짜 사이의 일 수 - ANSI SQL (0) | 2020.07.09 |
[SQL] 각 카테고리에서 MYSQL 하나를 선택 랜덤 기록 (0) | 2020.07.09 |
[SQL] SQL Server의 조항에 해당하여 ORACLE 연결 (0) | 2020.07.09 |
[SQL] 어떻게 SQL과 "이적 그룹"레이블을? (0) | 2020.07.09 |