আমি আমার ব্যবসায়িক-যুক্তি স্থিতিশীল পদ্ধতি সহ সহজ স্ট্যাটিক ক্লাসে প্রয়োগ করেছি। এই প্রতিটি পদ্ধতির এসকিউএল সংযোগটি খোলা / বন্ধ করার সময় বলা হয়:
public static void DoSomething(string something)
{
using (SqlConnection connection = new SqlConnection("..."))
{
connection.Open();
// ...
connection.Close();
}
}
তবে আমি মনে করি কোনও সংযোগ খোলা এবং বন্ধ করা কার্যকারিতা বাঁচায় । আমি ওলিডিবি সংযোগ ক্লাসের সাথে বেশ কিছুক্ষণ আগে বেশ কয়েকটি পরীক্ষা করেছিলাম ( এসকিউএল সংযোগ সম্পর্কে নিশ্চিত নই) এবং এটি অবশ্যই এটির মতো কাজ করতে সহায়তা করেছে (যতদূর আমি মনে করি):
//pass the connection object into the method
public static void DoSomething(string something, SqlConnection connection)
{
bool openConn = (connection.State == ConnectionState.Open);
if (!openConn)
{
connection.Open();
}
// ....
if (openConn)
{
connection.Close();
}
}
সুতরাং প্রশ্নটি হল - আমি কি পদ্ধতি (ক) বা পদ্ধতি (খ) নির্বাচন করব? আমি আর একটি স্ট্যাকওভারফ্লো প্রশ্নে পড়েছি যে সংযোগ পুলিং আমার জন্য পারফরম্যান্স বাঁচিয়েছে, আমাকে মোটেই বিরক্ত করার দরকার নেই ...
পুনশ্চ. এটি একটি এএসপি.এনইটি অ্যাপ্লিকেশন - কেবল ওয়েব-অনুরোধের সময় সংযোগ বিদ্যমান। কোনও উইন-অ্যাপ বা পরিষেবা নয়।
DbConnection.StateChange
যাচাইয়ের পরিবর্তে সংযোগের রাজ্যের পরিবর্তনের পরিবর্তনগুলি (এবং স্থানীয়ভাবে সঞ্চয় করা যেতে পারে) পর্যবেক্ষণ করতে ইভেন্টটি ব্যবহার করুনDbConnection.State
। এটি আপনার কর্মক্ষমতা ব্যয় সাশ্রয় করবে।