Microsoft phân phối các bản sửa SQL Server Microsoft 2008 R2 dưới dạng một tệp có thể tải xuống. Vì các bản sửa lỗi được tích lũy nên 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 bao gồm trong bản phát hành sửa lỗi SQL Server 2008 R2 trước đó.
Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn có mô hình Dịch vụ Dữ liệu Chính (MDS) và thực thể có thuộc tính dựa trên miền trong Microsoft SQL Server 2008 R2. Thuộc tính dựa trên miền được thiết kế để tự tham chiếu đến cùng một thuộc tính.Ví dụ: bạn có một thực thể Nhân viên có một thuộc tính ManagerName. Thuộc tính ManagerName tham chiếu đến cùng một thực thể nhân viên.Lưu ý Một người quản lý cũng là một loại nhân viên.
-
Có một cấu trúc phân cấp dẫn xuất được xác định trên một thuộc tính để hiển thị mối quan hệ đệ quy cha mẹ/con cho thuộc tính dựa trên miền.
-
Bạn tải các giá trị dữ liệu có chứa một hoặc nhiều tham chiếu vòng vào bảng dàn MDS. Hành vi này gây ra tham chiếu vòng và nút đầu tiên trong thuộc tính không phải là một phần của vòng tròn.Ví dụ: mẫu dữ liệu sau đây hiển thị tham chiếu vòng. Tuy nhiên, giá trị phần tử Member1 không phải là một phần của vòng tròn:
Member1 --manager attribute--> Member2 --manager attribute--> Member3 --manager attribute--> Member2 --manager attribute--> Member3
insert into mdm.tblStgMemberAttribute(ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue, Status_ID)Values ('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member3', 0),('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member1', 0)('EntityTest', 'ModelTest', 1, 'Member1', 'Manager', 'NULL', 0)
-
Bạn sử dụng một trong các phương pháp sau đây để tải giá trị dữ liệu vào thực thể bằng cách sử dụng quá trình dàn MDS:
-
Chạy Exec [mdm]. [udpStagingSweep] quy trình bằng cách sử dụng các tham số cần thiết để xử lý dữ liệu theo giai đoạn.
-
Bấm Quản lý Tích hợp để truy cập trang chủ website MDS. Trên trang Nhập Xuất, bên dưới tiêu đề mục Bản ghi Dàn dựng Không khớp, bấm vào Biểutượng Bánh răng để xử lý các bản ghi cho một kiểu và phiên bản cụ thể.
-
Trong trường hợp này, quá trình nền trong quá trình dàn có thể gặp phải một vòng lặp vô hạn khi quá trình nền nội bộ gọi [mdm]. [udpMemberRecursiveCircularCheck] quy trình.
Nguyên nhân
Sự cố này xảy ra vì các thủ tục udpStagingSweep và udpStagingMemberAttributeSave gọi thủ tục udpMemberRecursiveCircularCheck một lần cho mỗi hàng dàn. Hành vi này nên kiểm tra giá trị thuộc tính dựa trên miền và trả về lỗi nếu hàng sắp xếp gây ra tham chiếu vòng cùng với dữ liệu hiện có. Sau khi đã chọn tất cả các hàng được sắp xếp, bạn sẽ nhận được kết quả sau đây:
-
Hàng được sắp xếp không có lỗi sẽ được áp dụng.
-
Hàng được sắp xếp có lỗi sẽ được ghi cùng với mã lỗi.
Nếu các điều kiện được mô tả trong phần "Triệu chứng" là đúng, các [mdm]. [udpMemberRecursiveCircularCheck] thủ tục lặp vô hạn cho đến khi tài nguyên máy chủ hết hoặc hết thời gian chờ xảy ra.
Giải pháp
Thông tin cập nhật tích lũy
SQL Server 2008 R2 Gói Dịch vụ 1
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 Tích lũy 4. Để biết thêm thông tin về cách nhận gói cập nhật tích lũy này cho SQL Server 2008 R2 SP1, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
2633146 Gói Cập nhật Tích lũy 4 cho SQL Server 2008 R2 Gói Dịch vụ 1Note Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới chứa tất cả các cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản phát hành bản sửa lỗi SQL Server 2008 R2 SP1 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 sửa lỗi mới 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 mới được phát hành sau SQL Server 2008 R2 Gói Dịch vụ 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
Để khắc phục sự cố này, hãy sử dụng một trong các phương pháp sau:
-
Để ngăn chặn sự cố này, hãy làm theo các bước sau:
-
Xem lại thủ công các giá trị dữ liệu thành viên đang được chèn vào bảng dàn trước khi bạn chạy quá trình dàn.
-
Đảm bảo tất cả các giá trị phần tử cho bất kỳ thuộc tính dựa trên miền nào không chứa tham chiếu vòng được mô tả trong phần "Triệu chứng"
-
-
Khi sự cố được mô tả trong phần "Triệu chứng" xảy ra, hãy làm theo các bước sau để khắc phục sự cố:
-
Xác định phiên đang chạy trong vòng lặp vô hạn.
-
Giết phiên để ngừng vòng lặp.
-
Xóa các giá trị tham chiếu vòng khỏi bảng sắp xếp trước khi tham chiếu vòng được xử lý lại.
-
Lưu ý́
-
Để xác định phiên cần giết, hãy sử dụng một trong các phương pháp sau đây:
-
Sử dụng một màn hình hoạt động trong Microsoft SQL Server Management Studio.
-
Chọn từ sys.sysprocesses hoặc sys.dm_exec_requests dynamic management view (DMV) để xác định các phiên đang làm việc bên trong cơ sở dữ liệu MDS mà CPU và thời gian tăng nhanh chóng. Hãy đảm bảo rằng truy vấn hiện tại đang chạy trên phiên khớp với tên thủ tục được mô tả trong phần "Nguyên nhân".
-
-
Để xác định các thủ tục hiện đang chạy cho các phiên, sử dụng một trong các phương pháp sau đây:
-
Bấm chuột phải vào menu Chi tiết trên mỗi quy trình trong phần liệt kê các quy trình theo dõi hoạt động.
-
Sử dụng một trong các tham số sau:
-
Lệnh DBCC INPUTBUFFER (spid) cùng với ID phiên làm việc.
-
Hàm SELECT * FROM sys.dm_exec_sql_text(sqlhandle) cùng với tham số núm điều khiển SQL khớp khi bạn sử dụng đầu ra DMV.
-
-
Tham khảo
Để biết thêm thông tin về cách mở một màn hình hoạt động trong SQL Server Management Studio, hãy truy cập trang web MSDN sau đây:
Cách mở một màn hình hoạt động trong SQL Server Management StudioĐể biết thêm thông tin về cú pháp KILL, hãy truy cập trang web MSDN sau đây:
Thông tin chung về cú pháp KILLĐể biết thêm thông tin về sys.dm_exec_requests DMV, hãy truy cập trang web MSDN sau:
Thông tin chung về sys.dm_exec_requests DMVĐể biết thêm thông tin về sys.dm_exec_sql_text DMV, hãy truy cập trang web MSDN sau:
Thông tin chung về sys.dm_exec_sql_text DMVĐể biết thêm thông tin về lệnh DBCC INPUTBUFFER, hãy truy cập trang web MSDN sau đây:
Thông tin chung về lệnh DBCC INPUTBUFFERĐể biết thêm thông tin về Mô hình Cung cấp Dịch vụ Gia SQL Server cho Doanh nghiệp, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
935897 Nhóm SQL Server có Mô hình Dịch vụ Gia tăng để cung cấp cập nhật nóng cho các sự cố được báo cáoĐể biết thêm thông tin về sơ đồ đặt tên cho các bản cập nhật SQL Server, 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:
822499 Sơ đồ đặt tên mới cho gói cập nhật phần mềm Microsoft SQL Server Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft