KB2707185-FIX: truy vấn MDX trong SQL Server 2008 R2 chạy rất chậm nếu truy vấn có hàm Crossjoin lồng nhau

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])

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×