Tôi đã di chuyển một trang web và cơ sở dữ liệu lớn từ một máy chủ cũ hơn (Windows 2008 / SQL Server 2008/16 GB RAM / 2 x 2,5 GHz Quad Core / SAS) sang một máy chủ mới hơn, tốt hơn nhiều (Windows 2008 R2 / SQL Server 2012 SP1 / RAM 64 GB / 2 x 2.1 GHz Bộ xử lý 16 nhân / ổ SSD).
Tôi tách các tệp cơ sở dữ liệu trên máy chủ cũ, sao chép và đính kèm chúng trên máy chủ mới. Mọi thứ diễn ra rất tốt.
Sau đó, tôi đổi sang cấp độ tương thích thành 110, thống kê cập nhật, xây dựng lại các chỉ mục.
Với sự thất vọng to lớn của tôi, tôi nhận thấy rằng hầu hết các truy vấn sql chậm hơn nhiều (chậm hơn 2-3 lần) trên máy chủ SQL 2012 mới so với máy chủ SQL 2008 cũ.
Ví dụ: trên một bảng có khoảng 700k bản ghi, trên máy chủ cũ, một truy vấn về chỉ mục mất khoảng 100ms. Trên máy chủ mới, cùng một truy vấn mất khoảng 350 ms.
Điều tương tự xảy ra cho tất cả các truy vấn.
Tôi sẽ đánh giá cao một số trợ giúp ở đây. Hãy cho tôi biết những gì để kiểm tra / xác minh. Bởi vì tôi thấy rất khó tin rằng trên một máy chủ tốt hơn với SQL Server mới hơn, hiệu suất sẽ kém hơn.
Thêm chi tiết:
Bộ nhớ được đặt thành tối đa.
Tôi có bảng và chỉ mục này:
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]
Tôi đã thực hiện truy vấn này:
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 - Thời gian thực thi máy chủ SQL: Thời gian CPU = 419 ms, thời gian trôi qua = 695 ms.
MÁY CHỦ MỚI - Thời gian thực thi máy chủ SQL: Thời gian CPU = 1340 ms, thời gian trôi qua = 1636 ms.
KẾ HOẠCH THỰC HIỆN được tải lên tại đây: http://we.tl/ARbPuvf9t8
Cập nhật sau:
- Bộ xử lý Opteron 16 nhân AMD 2.1GHz trông tệ hơn nhiều so với bộ xử lý lõi tứ Intel 2.5GHz
- Cải thiện tuyệt vời thay đổi tùy chọn sức mạnh cửa sổ từ bóng sang công suất cao
- Cải thiện hơn nữa thay đổi mức độ song song tối đa thành 8 và ngưỡng chi phí thành 4
Bây giờ, Thời gian thực thi của SQL Server: Thời gian CPU = 550 ms, thời gian đã trôi qua = 828 ms.
Nó vẫn tệ hơn máy chủ cũ, nhưng không tệ lắm. Nếu bạn có bất kỳ đề xuất nào khác (ngoài tối ưu hóa truy vấn cục bộ), vui lòng bình luận.