Khắc phục: Truy vấn với mức độ cách ly giao dịch thiết lập để đọc khoản thất bại với lỗi 601

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:815008
Bài viết này đã được lưu trữ. Bài viết được cung cấp "nguyên trạng" và sẽ không còn được cập nhật nữa.
LỖI #: 363988 (SHILOH_BUGS)
TRIỆU CHỨNG
Khi một truy vấn chạy với cấp thiết lập của mình sự cô lập của giao dịch để đọc khoản, SQL Server 2000 aborts truy vấn và trả về sau đây thông báo lỗi:

Máy chủ: Msg 601, tầng 12, nhà nước 3, Dòng 14
Không thể tiếp tục quét với NOLOCK nhờ dữ liệu phong trào.
NGUYÊN NHÂN
Hành vi này có thể xảy ra khi một hàng trong một bảng sẽ bị xóa giữa thời gian SQL Server lần đọc với vị trí của hàng từ chỉ mục và các thời gian SQL Server tải hàng.
GIẢI PHÁP

Dịch vụ gói thông tin

Để giải quyết vấn đề này, có được các mới nhất gói dịch vụ cho Microsoft SQL Server 2000. Để biết thêm chi tiết, bấm vào số bài viết sau đây để xem bài viết trong các kiến thức Microsoft Cơ sở:
290211 Làm thế nào để có được SQL Server 2000 service pack mới nhất

Thông tin hotfix

Phiên bản tiếng Anh của hotfix này có các tập tin thuộc tính (hoặc sau này tập tin thuộc tính) mà được liệt kê trong bảng sau. Ngày tháng và thời gian cho những tập tin được liệt kê theo giờ phối hợp quốc tế (UTC). Khi bạn xem chi tieát taäp tin, nó được chuyển đổi thành giờ cục bộ. Để tìm sự khác nhau giữa UTC và local time, sử dụng các Giờ Khu vực thẻ công cụ ngày và giờ trong Pa-nen điều khiển.
Date		Time	Version		Size		 File name-----------------------------------------------------------------------------07-Feb-2003	16:14			  786,432 bytes  Distmdl.ldf07-Feb-2003	16:14			2,359,296 bytes  Distmdl.mdf29-Jan-2003	12:25			      180 bytes  Drop_repl_hotfix.sql31-Jan-2003	11:02	2000.80.763.0	1,557,052 bytes	 Dtsui.dll     29-Jan-2003	15:48			  746,470 bytes  Instdist.sql29-Jan-2003	12:25	                    1,402 bytes  Inst_repl_hotfix.sql07-Feb-2003	17:10	2000.80.765.0      90,692 bytes  Msgprox.dll  29-Jan-2003	11:48	7.0.9466.0        344,064 bytes  Msvcr70.dll      29-Jan-2003	11:48	2000.80.722.0      57,904 bytes  Osql.exe         07-Feb-2003	14:23                   1,065,895 bytes  Replmerg.sql07-Feb-2003	17:10	2000.80.765.0	  221,768 bytes  Replprov.dll     07-Feb-2003	17:10	2000.80.765.0     307,784 bytes  Replrec.dll      29-Jan-2003	15:48		   	1,084,318 bytes  Replsys.sql29-Jan-2003	11:48	2000.80.534.0	  127,548 bytes  Sqdedev.dll    07-Feb-2003	17:10	2000.80.765.0	  176,696 bytes  Sqlmap70.dll  07-Feb-2003	17:10	2000.80.765.0	   57,920 bytes  Sqlrepss.dll    14-Feb-2003	13:22	2000.80.769.0   7,512,145 bytes  Sqlservr.exe   29-Jan-2003	11:48	2000.80.194.0     180,290 bytes  Sqlunirl.dll     07-Feb-2003	17:10	2000.80.765.0      45,644 bytes  Sqlvdi.dll   07-Feb-2003	17:10	2000.80.765.0      82,492 bytes  Ssnetlib.dll     				
Chú ý Vì các tệp phụ thuộc, gần đây nhất hotfix hay tính năng có chứa các tập tin cũng có thể chứa thêm tập tin.


TÌNH TRẠNG
Microsoft đã xác nhận rằng đây là một vấn đề trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".Vấn đề này đã được sửa chữa đầu tiên trong Microsoft SQL Server 2000 Service Pack 4.
THÔNG TIN THÊM
Sau khi bạn cài đặt các hotfix, bạn có thể sử dụng dấu vết cờ 9134 đến thay đổi hành vi của SQL Server. Để cho phép dấu vết cờ 9134 vì vậy mà nó đã được vào bất cứ khi nào SQL Server bắt đầu, thêm lá cờ water là một khởi động SQL Server tham số. Để thêm dấu vết cờ 9134 như một tham số khởi động máy chủ SQL, làm theo các bước sau:
  1. Trong SQL Server Enterprise Manager, bấm chuột phải vào hệ phục vụ đó chạy SQL Server và bấmThuộc tính.
  2. Trên các Tổng quát tab, bấm vào Khởi động Tham số.
  3. Trong các Tham số hộp văn bản, loại-T9134, bấm Thêm, sau đó bấmOk.
  4. Trong các SQL Server Properties(Configure)-Máy chủ Tên> hộp thoại hộp, bấm vào Ok.
  5. Khởi động lại dịch vụ SQL Server cho các tham số mới để có hiệu lực.
Là một thay thế, bạn có thể chạy truy vấn sau đây trong truy vấn Phân tích tự động chuyển trên lá cờ water:
DBCC TRACEON (9134, -1)
Tuy nhiên, nếu bạn không thêm dấu vết cờ 9134 như một tham số khởi động, các hiệu quả của lệnh DBCC TRACEON bị mất khi các dịch vụ SQL Server khởi động lại.

Khi dấu vết cờ 9134 được bật và một hàng sẽ bị xóa hoặc lần giữa thời gian SQL Server lần đọc với vị trí của hàng và thời gian nó fetches hàng thông qua một tra cứu dấu trang, các truy vấn sẽ không ngừng hoặc trở về lỗi 601. Thay vào đó, SQL Server bỏ qua các hàng không thể được vị trí và nó vẫn tiếp tục để quét cho các hàng bổ sung mà đáp ứng các tiêu chí truy vấn. Do đó, tiếp tục thực hiện truy vấn; Tuy nhiên, kết quả đó SQL Server trả lại không có thể bao gồm hàng mà đã bị xóa hoặc di chuyển trong các truy vấn thực hiện.

Chú ý Thông tin trong bài viết này và vết cờ chỉ áp dụng cho một truy vấn đang được chạy với mức độ cách ly giao dịch thiết lập để đọc KHOẢN. Các thông tin không áp dụng cho một truy vấn được điều hành với các NOLOCK tôi ưu hoa gợi ý. Trong trường hợp đó, hành vi vẫn không thay đổi từ những gì được diễn tả trong phần "Triệu chứng".

Ngoài ra, đánh dấu dấu vết không ảnh hưởng đến thực tế rằng các lỗi và dữ liệu không thống nhất có thể xảy ra khi đọc dữ liệu khoản. Cho biết thêm thông tin về mức độ cách ly hỗ trợ bởi SQL Server và hiệu quả của việc sử dụng mỗi cấp độ cách ly, xem các "Khóa" chủ đề trong SQL Server sách trực tuyến.

Microsoft không khuyên bạn nên sử dụng này cờ water trừ khi tất cả sau đây áp dụng:
  • Ứng dụng dùng đòi hỏi một khoản đọc cô lập cấp.
  • Ứng dụng dùng đang trải qua một số lượng lớn 601 lỗi.
  • Bạn hiểu rằng khi bạn sử dụng dấu vết cờ, các hàng mà đã bị xóa hoặc di chuyển trong các truy vấn thực hiện được bỏ qua.
Chú ý Trước khi bạn sử dụng mức độ cách ly đọc khoản, bạn phải hiểu chức năng của nó. Để biết thêm thông tin về đọc khoản cô lập mực, mức, truy cập vào các trang Web mạng nhà phát triển của Microsoft (MSDN) sau Trang web:
THAM KHẢO
Để biết thêm chi tiết, bấm vào đây số bài viết để xem bài viết trong cơ sở kiến thức Microsoft:
235880INF: Optimizer Gợi Ý NOLOCK hay sự cô lập trình độ đọc khoản tạo ra lỗi 605
Để biết thêm chi tiết, hãy truy cập trang Web MSDN sau các trang web:
THIẾT LẬP MỨC ĐỘ SỰ CÔ LẬP CỦA GIAO DỊCH
http://msdn2.Microsoft.com/en-US/Library/aa259216 (SQL.80) .aspx

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 815008 - Xem lại Lần cuối: 12/08/2015 02:04:56 - Bản sửa đổi: 2.0

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Workgroup Edition

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbsqlserv2000presp4fix kbbug kberrmsg kbfix kbmt KB815008 KbMtvi
Phản hồi