2008-08-10 24 views
10

Phần mềm của chúng tôi phải có khả năng chạy trên SQL Server 2000 và 2005. Để đơn giản hóa việc phát triển, chúng tôi đang chạy cơ sở dữ liệu SQL Server 2005 ở mức tương thích 80. Tuy nhiên, hiệu suất cơ sở dữ liệu dường như chậm hơn trên SQL 2005 so với SQL 2000 trong một số trường hợp (chúng tôi chưa xác nhận điều này bằng cách sử dụng điểm chuẩn). Sẽ nâng cấp mức độ tương thích lên 90 để cải thiện hiệu năng trên các máy chủ SQL 2005?Việc chạy cơ sở dữ liệu SQL Server 2005 ở mức tương thích 80 có tác động tiêu cực đến hiệu suất không?

Trả lời

4

Tôi nghĩ rằng tôi đã đọc ở đâu đó, rằng cơ sở dữ liệu SQL Server 2005 sẽ nhanh hơn khoảng 30% so với công cụ SQL Server 2000. Nó có thể là, bạn phải chạy cơ sở dữ liệu của bạn trong chế độ tương thích 90 để có được những lợi ích này.

Nhưng tôi stumbled trên hai kịch bản, nơi hiệu suất có thể giảm đáng kể khi sử dụng MSSQL 2005 so với MSSQL 2000:

  1. Parameter Sniffing: Khi sử dụng một thủ tục lưu trữ, sql server sẽ tính toán chính xác một kế hoạch thực hiện tại thời gian, trước tiên bạn gọi thủ tục. Kế hoạch thực hiện phụ thuộc vào các giá trị tham số được đưa ra cho cuộc gọi đó. Trong trường hợp của chúng tôi, các thủ tục thường mất khoảng 10 giây đang chạy hàng giờ dưới mssql 2005. Hãy xem herehere.

  2. Khi sử dụng truy vấn được phân phối, mssql 2005 hoạt động các giả định liên quan khác nhau về thứ tự sắp xếp trên máy chủ từ xa. Hành vi mặc định là, máy chủ sao chép toàn bộ các bảng từ xa có liên quan đến truy vấn đến tempdb cục bộ và sau đó thực thi các phép nối cục bộ. Giải pháp thay thế là sử dụng OPENQUERY, nơi bạn có thể kiểm soát chính xác kết quả nào được chuyển từ máy chủ từ xa.

2

sau khi bạn chuyển DB sang năm 2005, bạn đã

cập nhật số liệu thống kê với quét toàn bộ? xây dựng lại các chỉ mục?

đầu tiên cố gắng đó và sau đó kiểm tra hiệu suất một lần nữa

1

Cũng là một FYI, nếu bạn chạy mức độ tương thích 90 sau đó một số điều không được hỗ trợ nữa như bên ngoài phong cách cũ tham gia (*= and =*)

1

Bạn đang sử dụng subselects trong truy vấn của bạn?

Từ kinh nghiệm của tôi, một câu lệnh SELECT với các lựa chọn chạy tốt trên SQL Server 2000 có thể thu thập dữ liệu trên SQL Server 2005 (có thể chậm hơn 10 lần!).

Thực hiện thử nghiệm - viết lại một truy vấn để loại bỏ các lựa chọn và xem hiệu suất của nó thay đổi như thế nào.

Các vấn đề liên quan