SORU
14 Aralık 2010, Salı


&; açma/kapama&; SqlConnection veya "açık tutmak"?

İş-mantık benim statik yöntemler ile basit statik sınıflarda uyguluyorum. Bu yöntemlerin her biri/çağrıldığında SQL bağlantısını kapatır açar:

public static void AddSomething(string something)
{
    using (SqlConnection connection = new SqlConnection("..."))
    {
        connection.Open();
        // ...
        connection.Close();
    }
}

Ama açılış kaçınarak ve Bağlantı kapatılıyor sanırımperformans kazandırır. Bazı testler zaman önce tamamlaması çooook yaptımOleDbConnectionsınıf () SqlConnection hakkında emin değilim, ve kesinlikle bu gibi işler için yardım (hatırladığım kadarıyla):

//pass the connection object into the method
public static void AddSomething(string something, SqlConnection connection)
{
    bool openConn = (connection.State == ConnectionState.Open);
    if (!openConn) connection.Open();
    // ....
    if (!openConn) connection.Close();
}

Soru - (a) yöntemi veya (b) seçmeliyim ? Benim için bağlantı kurtardı performans havuzu, rahatsız etmek yok başka bir stackoverflow soru okudum...

PS. ASP.NET bunun için bir program var - bağlantıları web isteği sırasında yalnızca mevcut. Kazan-uygulama ya da bir hizmet değil.

CEVAP
14 Aralık 2010, Salı


yöntem (a), her zaman. Uygulamanız Ölçekleme başlattığınızda, devlet ile ilgili olan mantık gerçek bir ağrı olur. Teneke ne diyor bağlantı havuzu yok. Sadece uygulama ölçekler, ve ne kadar kolay bağlantıları yönetmek için olabilir mi ne olur bir düşün. Bağlantı havuzu iyi bir iş yok. Eğer endişe ettiğin bir şey olursa performans bloke eder, böylece önbellek mekanizması bir tür düşün.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Khan Academy

    Khan Academy

    17 Kasım 2006
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008