2009-06-23 47 views
10

có cách nào để thông báo cho máy chủ sql sử dụng gợi ý (nolock) hoặc mọi lựa chọn trong quy trình được lưu trữ không?SQL Server - làm thế nào để đặt (nolock) gợi ý làm mặc định?

là khá mệt mỏi để thêm nó vào mỗi một hàng chọn ....

+2

Bạn muốn cẩn thận thực hiện điều này đặc biệt trong môi trường giao dịch khối lượng lớn do đọc dơ. –

+2

Trước khi thực hiện việc này - hãy chắc chắn rằng bạn hiểu hậu quả đầy đủ của các lần đọc bẩn. Bạn có thể bị mất các bản ghi hoặc đọc hai bản ghi trong các truy vấn - mà trong nhiều trường hợp không phải là một điều tốt cho ứng dụng của bạn. –

Trả lời

6

Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm ...

SET GIAO DỊCH ISOLATION LEVEL ĐỌC không bị giam

5

Bạn muốn sử dụng sau syntax:

SET GIAO DỊCH ISOLATION LEVEL ĐỌC không bị giam

tôi thấy b này y nhìn vào gợi ý bảng NOLOCK nằm ở here. Mệnh đề bảng WITH (NOLOCK) tương đương với việc thiết lập mức cô lập được ĐỌC KHÔNG ĐƯỢC ĐẢM BẢO. Đây là đoạn trích từ MSDN:

NOLOCK Tương đương với READUNCOMMITTED. Để biết thêm thông tin, hãy xem READUNCOMMITTED sau trong chủ đề này.

14

Như những người khác khá đúng nói, một toàn cầu (nolock) được thực hiện bằng đọc không bị giam.

Tuy nhiên, trước khi đi xuống tuyến đường đó, bạn nên thử READ SNITTOPHOT READ COMMITTED trước. Điều này có nghĩa là số lần đọc của bạn sẽ không bị khóa do chèn/cập nhật tiến trình và có nghĩa là dữ liệu không bị bẩn, chỉ lỗi thời.

0

Tuy nhiên, bạn có thể kết thúc với dữ liệu không chính xác. Vào năm 2005, nên sử dụng cách ly ảnh chụp nhanh hơn: "Khi cách ly Snapshot giúp và khi nào nó bị" http://www.devx.com/dbzone/Article/32957

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