Nếu bạn đang truy vấn tất cả các bản ghi trong một truy vấn và kéo chúng lại trong một lần, thì không cần. Mọi thứ được gói gọn trong một giao dịch ngầm. Có nghĩa là, ngay cả khi bạn lấy lại một triệu bản ghi và ngay cả khi các quy trình khác đang thay đổi bản ghi, bạn sẽ thấy tất cả một triệu bản ghi trông như thế nào tại cùng một thời điểm.
Những lần duy nhất bạn thực sự cần một giao dịch (và thường là một gợi ý khóa cụ thể) trong quy trình chỉ đọc là:
- Bạn đọc các bản ghi "phần ăn" và không cần gì khác để thay đổi các giá trị trong khi bạn itterate mặc dù. [Chẳng hạn như một tập bản ghi được kết nối trong ADO mà sau đó bạn trỏ chuột qua.]
- Bạn đọc một số dữ liệu, thực hiện một số tính toán, sau đó đọc một số dữ liệu liên quan, nhưng trên giả định không có gì thay đổi trong thời gian trung bình.
Tóm lại, bạn cần các giao dịch khi bạn muốn các quy trình khác không can thiệp vào dữ liệu của bạn giữa các câu lệnh SQL.