Tôi có một truy vấn đọc mà tôi thực hiện trong một giao dịch để tôi có thể chỉ định mức cô lập. Sau khi hoàn tất truy vấn, tôi nên làm gì?
- Cam kết giao dịch
- Khôi phục giao dịch
- Không làm gì (điều này sẽ khiến giao dịch được khôi phục lại ở cuối khối đang sử dụng)
Ý nghĩa của việc làm mỗi việc là gì?
using (IDbConnection connection = ConnectionFactory.CreateConnection())
{
using (IDbTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted))
{
using (IDbCommand command = connection.CreateCommand())
{
command.Transaction = transaction;
command.CommandText = "SELECT * FROM SomeTable";
using (IDataReader reader = command.ExecuteReader())
{
// Read the results
}
}
// To commit, or not to commit?
}
}
CHỈNH SỬA: Câu hỏi không phải là liệu có nên sử dụng giao dịch hay không hoặc có những cách nào khác để đặt mức giao dịch. Câu hỏi là nếu nó tạo ra bất kỳ sự khác biệt nào mà một giao dịch không sửa đổi bất kỳ điều gì được cam kết hoặc quay trở lại. Có sự khác biệt về hiệu suất không? Nó có ảnh hưởng đến các kết nối khác không? Bất kỳ sự khác biệt nào khác?