Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tác dụng của gợi ý NOLOCK trong câu lệnh SELECT

1) , một lựa chọn với NOLOCK sẽ hoàn thành nhanh hơn một lựa chọn thông thường.

2) , một lựa chọn với NOLOCK sẽ cho phép các truy vấn khác đối với bảng được hiệu ứng hoàn thành nhanh hơn một lựa chọn thông thường.

Tại sao lại là?

NOLOCK thông thường (tùy thuộc vào công cụ DB của bạn) có nghĩa là cung cấp cho tôi dữ liệu của bạn và tôi không quan tâm đến trạng thái của nó, và đừng bận tâm giữ nó trong khi bạn đọc từ nó. Tất cả đều nhanh hơn, ít tốn tài nguyên hơn và rất nguy hiểm.

Bạn nên được cảnh báo là không bao giờ thực hiện cập nhật hoặc thực hiện bất kỳ điều gì hệ thống quan trọng hoặc khi yêu cầu tính chính xác tuyệt đối bằng cách sử dụng dữ liệu có nguồn gốc từ NOLOCK đọc. Rất có thể dữ liệu này chứa các hàng đã bị xóa trong quá trình chạy truy vấn hoặc đã bị xóa trong các phiên khác chưa được hoàn thiện. Có thể dữ liệu này bao gồm các hàng đã được cập nhật một phần. Có thể dữ liệu này chứa các bản ghi vi phạm các ràng buộc khóa ngoại. Có thể dữ liệu này loại trừ các hàng đã được thêm vào bảng nhưng vẫn chưa được cam kết.

Bạn thực sự không có cách nào để biết trạng thái của dữ liệu.

Nếu bạn đang cố lấy những thứ như Số lượng hàng hoặc dữ liệu tóm tắt khác trong đó một số sai số có thể chấp nhận được, thì hãy NOLOCK là một cách tốt để tăng hiệu suất cho các truy vấn này và tránh để chúng tác động tiêu cực đến hiệu suất cơ sở dữ liệu.

Luôn sử dụng NOLOCK gợi ý hết sức thận trọng và xử lý mọi dữ liệu mà nó trả về một cách đáng ngờ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một bảng được phân vùng trong SQL Server (T-SQL)

  2. Kiểm tra loại tham số của hàm phân vùng trong SQL Server (T-SQL)

  3. SQL Server và các lỗ hổng Spectre / Meltdown

  4. Làm cách nào để lấy danh sách ID từ bảng SQL dưới dạng chuỗi giá trị được phân tách bằng dấu phẩy?

  5. Tiện ích thay đổi mật khẩu SQL khéo léo để đặt lại mật khẩu SQL