Microsoft phân phối các bản sửa lỗi Microsoft SQL Server 2008 R2 SP1 là một tệp được tải xuống. Vì bản sửa lỗi được tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản phát hành khắc phục sự cố SQL Server 2008 trước đó.
Triệu chứng
Hãy cân nhắc tình huống sau đây. Bạn chạy truy vấn MDX sử dụng các hàm Crossjoin lồng trong Microsoft SQL Server 2008 R2. Hàm Crossjoin lồng tham chiếu một số cấu trúc phân cấp liên tiếp. Trong trường hợp này, truy vấn sẽ chạy rất chậm và SQL Server 2008 R2 có thể ngừng phản hồi. Ví dụ, bạn chạy một truy vấn MDX tương tự như sau:
CrossJoin (CrossJoin (CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])), [Dimension1 Hierarchy]), [Dimension2 Hierarchy]), [Dimension1 Hierarchy])Lưu ý́
-
Trong cấu trúc phân cấp liên tiếp, hàm Crossjoin lồng nhau tham chiếu các cấu trúc phân cấp chiều khác nhau.
-
Sự cố này không xảy ra trong SQL Server 2008.
Nguyên nhân
Sự cố này xảy ra vì bộ nhớ cần thiết để phân cấp nhóm từ cùng một kích thước tăng theo cấp số nhân và cuối cùng được sử dụng.
Giải pháp
Thông tin Cập Nhật tích lũy
Gói dịch vụ SQL Server 2008 R2 2
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật Cumulative 3. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2008 R2 Service Pack 2, hãy bấm số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
2754552 Gói Cập Nhật tích lũy 3 cho SQL Server 2008 R2 gói dịch vụ 2 Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật được đưa vào bản phát hành SQL Server 2008 R2 gói dịch vụ trước đó 2. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2730301 Bản dựng SQL Server 2008 R2 đã được phát hành sau khi SQL Server 2008 R2 Service Pack 2 đã được phát hành
SQL Server 2008 R2 SP1
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật Cumulative 8. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2008 R2, hãy bấm số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
2723743 Gói Cập Nhật tích lũy 8 cho SQL Server 2008 R2 gói dịch vụ 1Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản phát hành khắc phục SQL Server 2008 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2567616 Bản dựng SQL Server 2008 R2 đã được phát hành sau khi SQL Server 2008 R2 Service Pack 1 đã được phát hành
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Cách giải quyết
Để giải quyết vấn đề này, hãy thay đổi truy vấn để đặt cấu trúc phân cấp chiều thứ hai trong hàm Crossjoin bên ngoài. Ví dụ, hãy ghi lại truy vấn để trông giống như sau:
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension1 Hierarchy]), [Dimension2 Hierarchy])