Connection pooling baglantı havuzu anlamındadır . Normal şartlarda bizim ilk baglantı işlemlerimizde uygulama biraz beklemekdedir . daha sonraki ikinci baglantımızda ise bu sure daha hızlıdır . Peki bunun nedeni nedir ???
Bir adet baglantı havuzumuz vardır . Bu havuz içerisinde bizim baglantılarımız durmakdadır biz ilk defa baglantı icin sql e gittigimiz zaman donen baglantı kendini baglantı havuzuna bırakır ve bir sonra ki baglantı havuzdan bize verilir bu nedenden dolayı baglantı havuzumuzdan gelen baglantı her zaman daha hızlıdır .
Test edelim ... 1000 tane baglantı acıp kapayalım ve sure tutalım bakalım pooling kapalı iken ne kadar surede bu işlem olucak acıkken ne kadar surede bunu bir görelim ...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace test
{
class Program
{
static void Main(string[] args)
{
PoolingAcik();
PoolingKapali();
}
static void PoolingAcik()
{
// Default olarak pooling bize acık bir sekilde gelmekdedir ...
SqlConnection Con;
Con = new SqlConnection("data source=.; initial catalog = AdventureWorks; integrated security=true");
DateTime Baslangic = DateTime.Now;
for (int i = 0; i < 1000; i++)
{
Con.Open();
Con.Close();
}
DateTime Bitis = DateTime.Now;
TimeSpan Fark = Bitis - Baslangic;
Console.WriteLine("Gecen Sure {0}", Fark.TotalSeconds);
}
static void PoolingKapali()
{
// Baglantı satırımızda pooling = false ederek manuel bir sekilde kapattık ...
SqlConnection Con = new SqlConnection("data source=.; initial catalog = AdventureWorks; integrated security=true Pooling = false");
DateTime Baslangic = DateTime.Now;
for (int i = 0; i < 1000; i++)
{
Con.Open();
Con.Close();
}
DateTime Bitis = DateTime.Now;
TimeSpan GecenZaman = Bitis - Baslangic;
Console.WriteLine("Pooling kapali iken geçen zaman {0}", GecenZaman.TotalSeconds);
}
}
}
:: Sonuç ::

Fazla söze gerek yok fark ortada :) ii ki varsın pooling
pooling.rar (19,42 kb)
52b6a86c-e9ba-4f83-886e-ee1a2fd8b7fe|1|5.0