동일한 테이블에 대해 하드웨어 기능이 비슷한 SQL Server 2008 R2에서 CPU의 20 %를 사용하는 경우 SQL Server 2014에서 전체 검색 업데이트 통계가 CPU의 100 %를 사용하는 이유는 무엇입니까?
나는 MAXDOP
다른 옵션을 보고 있었고 실제로 눈에 띄는 것은 없습니다. 이 문제를 일으킬 수있는 설정이있을 수 있지만 두 데이터베이스의 설정은 매우 유사합니다 (예 : MAXDOP
둘 다 코어가있는 두 데이터베이스 모두 4). 둘 다 Enterprise Edition입니다.
SQL Server 2014와 SQL Server 2008 R2에이를 설명 할 수있는 "다른"것이 있습니까? 두 서버 모두 메모리 옵션이 90 %입니다. 무엇을 찾아야할지 생각이 있습니까?
SQL Server 2008 R2 / SP3 및 SQL Server 2014 / SP2를 사용하여 두 서버에서 일주일에 한 번 전체 (100 %) 스캔으로 업데이트 통계를 실행하며 데이터베이스의 구조는 동일합니다. 2008 R2 서버에서 매우 큰 두 테이블의 업데이트 통계는 몇 시간이 걸리지 만 예상 한 시간이지만 CPU는 전체 시간의 20 % 이하로 유지됩니다. 그러나 2014 서버에서는 CPU가 약 40 분 동안 100 %로 이동합니다. 2014 서버에서는 테이블이 약간 작습니다. SQL Monitor 분석 메뉴를 사용하여 이것을 봅니다.
다음은 2014 SQL Server의 Ola 로그 파일 출력입니다. CPU는 약 2:10에서 2:45로 100 %가됩니다.
Date and time: 2017-06-24 02:10:20
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000005_15502E78] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:07:48
Date and time: 2017-06-24 02:18:08
Date and time: 2017-06-24 02:18:08
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000006_15502E78] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:32:22
Date and time: 2017-06-24 02:50:30
위의 두 가지 통계에 대한 2008 R2 SQL Server의 Ola 로그 파일 출력은 다음과 같지만 CPU는 15 %가됩니다.
Date and time: 2017-06-24 03:30:32
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000003_0425A276] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:05:00
Date and time: 2017-06-24 03:35:32
Date and time: 2017-06-24 03:35:32
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000004_0425A276] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:52:31
Date and time: 2017-06-24 04:28:03
모든 병렬 계획 생성이 제거되어 응용 프로그램을 손상시킬 수 있으므로 서버 maxdop = 1로 실행할 수 없습니다. 나는 반대 방향으로 가서 8로 늘릴 계획입니다 (상자에 16 개의 코어가 있음). CPU가 페깅되는 시간을 줄이기 위해 더 빨라질 수 있습니다. 이 작업은 사용자가 거의없는 동안 실행됩니다.
tempdb
구성은 동일?UPDATE STATISTICS
실행 하는 동안 사용할 수 있으므로 문제가 될 수도 있습니다.