Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 연결 풀링이란 무엇이며 이를 달성하는 방법은 무엇입니까?

<시간/>

네임스페이스를 가져오거나 네임스페이스 또는 유형에 대한 별칭을 만드는 데 사용됩니다.

선언 전에 파일의 맨 위에 위치합니다.

using System;
using System.IO;
using WinForms = global::System.Windows.Forms;
using WinButton = WinForms::Button;


using 문은 개체를 생성하고 메서드, 속성 등을 호출할 때 예외가 발생하더라도 Dispose()가 호출되도록 합니다. Dispose()는 사용자 지정 가비지 컬렉션을 구현하는 데 도움이 되는 IDisposable 인터페이스에 있는 메서드입니다. 즉, 일부 데이터베이스 작업(Insert, Update, Delete)을 수행하고 있지만 어떻게든 예외가 발생하면 using 문이 자동으로 연결을 닫습니다. 여기서는 연결 Close() 메서드를 명시적으로 호출할 필요가 없습니다.

또 다른 중요한 요소는 연결 풀링에 도움이 된다는 것입니다. .NET의 연결 풀링은 데이터베이스 연결이 여러 번 닫히지 않도록 도와줍니다. 나중에 사용할 수 있도록 연결 개체를 풀로 보냅니다(다음 데이터베이스 호출). 다음에 응용 프로그램에서 데이터베이스 연결이 호출될 때 연결 풀은 풀에서 사용 가능한 개체를 가져옵니다. 따라서 응용 프로그램의 성능을 향상시키는 데 도움이 됩니다. 따라서 using 문을 사용하면 컨트롤러가 개체를 연결 풀에 자동으로 전송하므로 Close() 및 Dispose() 메서드를 명시적으로 호출할 필요가 없습니다.

using (Stream input = File.OpenRead(filename)) {
   ...
}

예시

string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";
using (SqlConnection conn = new SqlConnection(connString)) {
   SqlCommand cmd = conn.CreateCommand();
   cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";
   conn.Open();

   using (SqlDataReader dr = cmd.ExecuteReader()) {
      while (dr.Read())
      Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
   }
}

위의 코드에서는 연결을 닫지 않고 자동으로 닫힙니다. using 문은 using 문으로 인해 자동으로 conn.Close()를 호출합니다.

((SqlConnection conn =new SqlConnection(connString) 사용) 및 SqlDataReader 개체에 대해 동일합니다. 또한 예외가 발생하면 연결이 자동으로 닫힙니다.