2011-09-03 2 views
3

가능한 한 간단하게 설명하려고합니다. 우리는 SqlConnection과 3 가지 방법을 가지고 있습니다.페이지에 대해 SqlConnection을 재사용하는 올바른 방법

1 유형

이 유형 개방 하나도록 SqlConnection 및 방법은 속성도록 SqlConnection이 '. 기본적으로 그들은 단지 sConnection를 사용하고 생성 방법, 사용, 가까이하는 SqlCommand 및 SqlDataReader 개체 내에서

using (SqlConnection sConnection = new SqlConnection(string)) 
{ 
    sConnection.Open(); 

    Method objMethod = new Method(); 
    objMethod.SqlConnection = sConnection; 
    objMethod.DoSomething(); 

    Method2 objMethod = new Method2(); 
    objMethod2.SqlConnection = sConnection; 
    objMethod2.DoSomething(); 

    Method3 objMethod = new Method3(); 
    objMethod3.SqlConnection = sConnection; 
    objMethod3.DoSomething(); 
} 

2 종류

이 유형은 별도로 모든 메소드 내에서 새로운도록 SqlConnection, SqlCommand를, SqlDataReader 개체를 만듭니다. 3 가지 방법을 위해서는 3 개의 SqlConnection을 열고 닫아야합니다.

Method objMethod = new Method(); 
    objMethod.DoSomething(); 

    Method2 objMethod = new Method2(); 
    objMethod2.DoSomething(); 

    Method3 objMethod = new Method3(); 
    objMethod3.DoSomething(); 

질문 방법 내에서 캡슐화도록 SqlConnection을 유지하거나 새 열 필요없이 방법 내에서 연결을 열도록 SqlConnection 및 사용에 만들 안전 여부입니다. 당신이 성능에 관심을 그래서 만약

감사

답변

2

는 SQL 연결 풀링; 두 방법 모두 단 하나의 연결 만 사용할 가능성이 있으므로 두 번째 방법을 사용하는 것에 대한 패널티는 무시할 수 있습니다.

반면에 두 번째 방법은 더 나은 캡슐화와 관심사의 분리를 보여줍니다. 나는 두 번째 옵션으로 갈 것이다.

1

SqlConnections가 풀링됩니다. Sql Server를 사용하면 열어서 사용하고 닫는 것이 가장 좋습니다 (블록을 ​​사용하여 - 마지막에 Dispose를 사용하여 마지막으로 확장).

풀링 동작을 무력화하고 다른 스레드/요청이 필요하지 않을 때 풀에 다른 연결을 불필요하게 추가하기 때문에 실제로 연결을 열어두면 성능이 저하 될 수 있습니다.

수영장에서 일하게하십시오.