병렬처리 기법
단일 쿼리에서 다수의 CPU 를 사용할 수 있는 병렬처리 기법을 지원하고 있습니다.
( Enterprise 버전에서 지원되고 있습니다. )
병렬처리를 하게 되는 경우 CPU 사용률은 높아지지만 응답속도는 더 빨라질 수 있습니다.
그렇다면 어떤 SP 가 병렬처리 되고 있는지 확인해 봅니다.
SP 가 병렬처리되는지 확인하는 쿼리
라이브에서 운영중인 쿼리는 대부분 SP 를 통해서 수행되고 있으며,
어떤 SP 가 CPU 를 몇 개를 사용하는지 알 수 있는 DMV 를 제공하고 있습니다.
아래 쿼리는 플랜캐시를 통해 병렬처리되는 실행계획을 가지고 있는 DB 명, SP 명, CPU 사용 수를 반환합니다.
실행계획에서만 확인할 수 있기 때문에 실행계획이 플랜캐시에 없는 경우 병렬처리 되는지 확인할 수 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | SELECT DB_NAME(p.dbid), OBJECT_NAME(p.objectid, p.dbid), qs.last_dop, qs.min_dop, qs.max_dop FROM sys.dm_exec_cached_plans cp CROSS apply sys.dm_exec_query_plan(cp.plan_handle) p JOIN sys.dm_exec_query_stats qs ON qs.plan_handle = cp.plan_handle WHERE p.query_plan.value('declare namespace p="http://schemas.microsoft.com/sqlserver/2004/07/showplan";max(//p:RelOp/@Parallel)', 'float') > 0 OPTION (MAXDOP 1) | cs |
'SQL Server > SQL Server 자주보는' 카테고리의 다른 글
[MSSQL] 파티션 테이블, 파티션 파일그룹, 파티션 경계값 확인하는 방법 (0) | 2020.02.09 |
---|---|
[MSSQL] 플랜캐시에 있는 실행계획 확인하는 방법 (0) | 2020.02.09 |
[MSSQL] TempDB 를 사용하는 쿼리 찾기 (0) | 2020.02.09 |
[MSSQL] 테이블 컬럼조회하기 (오라클의 DESC) (0) | 2019.03.28 |
[MSSQL] 서버, 인스턴스, 데이터베이스 명 확인하기 (0) | 2019.03.28 |