Tôi muốn:SQL Chọn Rows từ một bảng và cập nhật các hàng cùng
- Chọn N hàng từ một bảng để chế biến nơi flag = 0
- làm một số công việc trên một bảng thứ hai sử dụng các giá trị từ những N hàng
- cập nhật những dòng N và thiết lập flag = 1
tôi có các quy trình song song thực hiện công việc này cùng với nhau, và tôi muốn đảm bảo rằng tất cả bắt đầu làm việc trên các hàng độc đáo. Làm cách nào để tôi đảm bảo điều đó?
gợi ý READPAST thực hiện thủ thuật, một bài viết hay http://www.mssqltips.com/sqlservertip/1257/processing-data-queues-in-sql-server-with-readpast-and-updlock/ – newbie
Với SQL 2008 , bạn có thể sử dụng mệnh đề OUTPUT với READPAST HINT trong truy vấn để kết hợp hoạt động xếp hàng vào một câu lệnh đơn.http: //www.sqlservercentral.com/articles/Queue+processing/69653/ – newbie
@newbie Có, bạn có thể sử dụng đầu ra để khóa và truy xuất tin nhắn và đánh dấu nó được xử lý trong một truy vấn duy nhất. Nhưng tôi đã so sánh hiệu suất xử lý tin nhắn đơn và không có lợi ích nào so với hai truy vấn (chọn trước và sau đó cập nhật). Trên thực tế, thông lượng đa luồng thấp hơn một chút khi sử dụng truy vấn OUTPUT. Có lẽ trong xử lý hàng loạt các khoản đầu ra sẽ nhanh hơn, nhưng đối với tin nhắn đơn nó không. – nightwatch