İzolasyon seviyesini belirtebilmem için bir işlem içinde yürüttüğüm bir okuma sorgum var. Sorgu tamamlandıktan sonra ne yapmalıyım?
- İşlemi tamamla
- İşlemi geri alın
- Hiçbir şey yapmayın (bu, kullanım bloğunun sonunda işlemin geri alınmasına neden olur)
Her birini yapmanın sonuçları nelerdir?
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?
}
}
DÜZENLEME: Soru, bir işlemin kullanılması gerekip gerekmediği veya işlem seviyesini belirlemenin başka yolları olup olmadığı değildir. Buradaki soru, herhangi bir değişiklik yapmayan bir işlemin taahhüt edilmesi veya geri alınmasıdır. Performans farkı var mı? Diğer bağlantıları etkiliyor mu? Başka fark var mı?