मेरे पास एक पढ़ने की क्वेरी है जिसे मैं एक लेनदेन के भीतर निष्पादित करता हूं ताकि मैं अलगाव स्तर को निर्दिष्ट कर सकूं। एक बार क्वेरी पूरी हो जाने के बाद, मुझे क्या करना चाहिए?
- लेन-देन करें
- लेन-देन रोलबैक करें
- कुछ भी न करें (जिससे लेन-देन ब्लॉक के अंत में लेन-देन वापस हो जाएगा)
प्रत्येक करने के निहितार्थ क्या हैं?
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: प्रश्न यह नहीं है कि क्या लेन-देन का उपयोग किया जाना चाहिए या यदि लेनदेन स्तर निर्धारित करने के अन्य तरीके हैं या नहीं। सवाल यह है कि क्या इससे कोई फर्क पड़ता है कि कोई लेन-देन जो कुछ भी संशोधित नहीं करता है वह प्रतिबद्ध है या वापस लुढ़का हुआ है। क्या कोई प्रदर्शन अंतर है? क्या यह अन्य कनेक्शनों को प्रभावित करता है? कोई अन्य मतभेद?