Saya memiliki kueri baca yang saya jalankan dalam suatu transaksi sehingga saya dapat menentukan tingkat isolasi. Setelah kueri selesai, apa yang harus saya lakukan?
- Lakukan transaksi
- Rollback transaksi
- Tidak melakukan apa-apa (yang akan menyebabkan transaksi dibatalkan pada akhir blok penggunaan)
Apa implikasi dari melakukan masing-masing?
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?
}
}
EDIT: Pertanyaannya bukan apakah transaksi harus digunakan atau jika ada cara lain untuk mengatur level transaksi. Pertanyaannya adalah jika ada bedanya bahwa transaksi yang tidak mengubah apa pun telah dilakukan atau dibatalkan. Apakah ada perbedaan kinerja? Apakah itu mempengaruhi koneksi lain? Ada perbedaan lain?