이전 서버 (Windows 2008 / SQL Server 2008 / 16GB RAM / 2 x 2.5GHz 쿼드 코어 / SAS 디스크)에서 더 큰 새 서버 (Windows 2008 R2 / SQL Server 2012 SP1 / 64GB RAM / 2 x 2.1GHz 16 코어 프로세서 / SSD 디스크).
이전 서버에서 데이터베이스 파일을 분리하고 새 서버에서 복사하여 첨부했습니다. 모든 것이 잘 진행되었습니다.
그 후 호환성 수준을 110으로 변경하고 통계를 업데이트하고 인덱스를 다시 작성했습니다.
실망스럽게도 대부분의 SQL 쿼리는 이전 SQL 2008 서버보다 새 SQL 2012 서버에서 훨씬 느립니다 (2-3-4 배 느림).
예를 들어, 약 700k 레코드가있는 테이블에서 이전 서버의 인덱스 쿼리는 약 100ms가 걸렸습니다. 새 서버에서 동일한 쿼리는 약 350ms가 걸립니다.
모든 쿼리에서도 마찬가지입니다.
도움이 필요합니다. 확인 / 확인해야 할 사항을 알려주세요. 새로운 SQL Server가있는 더 나은 서버에서는 성능이 떨어 졌다고 믿기가 매우 어렵습니다.
자세한 내용은:
메모리가 최대로 설정되어 있습니다.
이 테이블과 인덱스가 있습니다.
CREATE TABLE [dbo].[Answer_Details_23](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserID] [int] NOT NULL,
[SurveyID] [int] NOT NULL,
[CustomerID] [int] NOT NULL default 0,
[SummaryID] [int] NOT NULL,
[QuestionID] [int] NOT NULL,
[RowID] [int] NOT NULL default 0,
[OptionID] [int] NOT NULL default 0,
[EnteredText] [ntext] NULL,
CONSTRAINT [Answer_Details_23_PK] PRIMARY KEY NONCLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE NONCLUSTERED INDEX [IDX_Answer_Details_23_SummaryID_QuestionID] ON [dbo].[Answer_Details_23]
(
[SummaryID] ASC,
[QuestionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
이 쿼리를 실행했습니다.
set statistics time on;
select summaryid, count(summaryid) from Answer_Details_23 group by summaryid order by count(summaryid) desc;
set statistics time off;
OLD SERVER-SQL Server 실행 시간 : CPU 시간 = 419ms, 경과 시간 = 695ms
새 서버-SQL Server 실행 시간 : CPU 시간 = 1340ms, 경과 시간 = 1636ms
여기에 업로드 계획 : http://we.tl/ARbPuvf9t8
나중에 업데이트 :
- AMD 2.1GHz Opteron 16 코어 프로세서는 Intel 2.5GHz 쿼드 코어 프로세서보다 훨씬 나빠 보입니다.
- 윈도우 파워 옵션을 밸런싱에서 고전력으로 변경
- 최대 병렬 처리 수준을 8로 변경하고 비용 임계 값을 4로 변경하여 추가 개선
이제 SQL Server 실행 시간 : CPU 시간 = 550ms, 경과 시간 = 828ms
여전히 이전 서버보다 나쁘지만 그렇게 나쁘지는 않습니다. 로컬 쿼리 최적화 이외의 다른 제안 사항이 있으면 언제든지 의견을 말하십시오.