İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Geliştirici Araçları
  • SqlClient Pool V2 Paralel Bağlantı Açmayı Hızlandırıyor
Bulut Altyapı Geliştirici Araçları Asenkron G/Ç, Bağlantı Havuzu, cold start, Eşzamanlılık, Microsoft.Data.SqlClient Aşkın KILIÇ 07/10/2026 0 Yorumlar

SqlClient Pool V2 Paralel Bağlantı Açmayı Hızlandırıyor

SqlClient Pool V2 Paralel Bağlantı Açmayı Hızlandırıyor
📑 İçindekiler
  1. Eski havuzdaki darboğaz neydi?
  2. Pool V2 nasıl çalışıyor?
  3. Ölçülen cold-start sonuçları
  4. Senkron ve asenkron sonuçlar
  5. Test ortamı
  6. Bilinen asenkron G/Ç sınırlaması
  7. Pool V2 nasıl etkinleştirilir?
  8. Hangi senaryolarda değerlendirmeli?
  9. İlgili İçerikler
  10. Kaynaklar ve İleri Okuma

⏱️ 4 dk okuma📅 7 Ekim 2026

Microsoft.Data.SqlClient kullanan uygulamalarda aynı anda çok sayıda istek bağlantı beklediğinde uygulama açılışı gecikiyor, gecikme büyüyordu. Yeni bağlantı havuzu (Pool V2) yeni bağlantıları eşzamanlı kurarak tam bu darboğazı hedefliyor. Aşağıda Pool V2’nin ne değiştirdiği, ölçülen cold-start sonuçları, bilinen asenkron G/Ç sınırlaması ve tek satırlık etkinleştirme adımı var.

Eski havuzdaki darboğaz neydi?

Klasik (legacy) bağlantı havuzunda bir havuz içinde aynı anda yalnızca tek bir yeni bağlantı açılabiliyordu. Havuzun büyümesi gereken anlarda istekler sıraya giriyor, bu da en çok şu senaryolarda hissediliyordu:

  • Uygulama açılışında birkaç farklı metadata sorgusunun aynı anda çalışması,
  • Sessiz bir dönemin ardından gelen ani trafik artışları.

Geliştiriciler bu sınırı aşmak için geçici çözümlere başvuruyordu: Min Pool Size değerini artırıp kapasiteyi önceden rezerve etmek ya da havuzlamayı tamamen kapatmak. Pool V2 ile bu tür çözümlere gerek kalmıyor.

Pool V2 nasıl çalışıyor?

Tasarım asenkron iş yüklerini merkeze alıyor. Çekirdekte, ayrılmış arka plan iş parçacıklarına dayanmak yerine System.Threading.Channels kullanılıyor; birinci sınıf asenkron desteğe sahip üretici-tüketici veri yapılarından oluşan bir küme. Microsoft’un aktardığına göre bu yaklaşım, çok sayıda farklı veritabanına bağlanan uygulamalarda iş parçacığı yönetimi yükünü azaltabiliyor. Ekip, bu havuzlama tasarımının önünü açtığı için Npgsql sürücü ekibine teşekkür ediyor.

Aynı anda birden fazla istek yeni bağlantı talep ettiğinde havuz artık bağlantıları eşzamanlı kurabiliyor ve daha hızlı yanıt veriyor. Fark kabaca bu.

Ölçülen cold-start sonuçları

Microsoft, eski havuzla Pool V2’nin soğuk başlangıçta (cold start) belirli sayıda bağlantıyı ne kadar sürede kurabildiğini ölçtü. Her testte havuz temizlendi, ardından eşzamanlı çağıranların aynı sayıda bağlantıyı açıp tüm açma işlemleri tamamlanana kadar tutması süreölçüme alındı.

Ölçülen süreye bağlantı oluşturma, senkronizasyon ve bağlantıların havuza iadesi dahil; havuz temizleme ile test kurulumu hariç tutuldu. Sonuçlar tek bir bağlantı açma işleminin gecikmesini değil, işlemin tamamının ortalama süresini temsil ediyor. Testler Max Pool Size=200 ayarıyla 10, 25, 50 ve 100 eşzamanlı çağıranla yapıldı; ağ değişkenliğini azaltmak için SQL Server benchmark ile aynı makinede çalıştırıldı.

Senkron ve asenkron sonuçlar

  • Senkron: Linux üzerinde 100 eşzamanlı çağıranla Pool V2, ortalama cold-start benchmark süresini 630,1 ms’den 117,5 ms’ye indirdi, yani 5,4 kat hızlanma. Senkron çağıranlar SqlConnection.Open() ile ayrılmış iş parçacıkları kullanıyor.
  • Asenkron: Aynı koşullarda ortalama süre 604,1 ms’den 92,0 ms’ye düştü, 6,6 kat hızlanma. Asenkron çağıranlar SqlConnection.OpenAsync() ile task kullanıyor.

Her iki senaryoda da çağıranlar tüm açma işlemleri tamamlanana kadar bağlantılarını tutuyor ve düşük süre daha iyi anlamına geliyor.

Bu benchmark’lar yalnızca soğuk başlangıçtaki bağlantı kurulumunu ve koordinasyonu ölçüyor; sınır da burası. SQL sorgu yürütmesi ya da ısınmış bir havuzdaki bağlantı yeniden kullanımı kapsam dışında. Sonuçlar iş yüküne ve ağ gecikmesine göre değişir.

Test ortamı

  • Linux: 16 çekirdek / 32 mantıksal CPU Intel Xeon Platinum 8168 sanal makinede Ubuntu 22.04.5 LTS; SQL Server 2022 Developer CU26,.NET 9.0.19, BenchmarkDotNet 0.15.8.
  • Windows: Aynı donanım profilinde Windows Server 2022 Datacenter Azure Edition; SQL Server 2025 Enterprise Evaluation RTM,.NET 9.0.19, BenchmarkDotNet 0.15.8.

Benchmark’ın tam kaynak kodu dotnet/SqlClient GitHub deposunda yayımlanıyor.

Bilinen asenkron G/Ç sınırlaması

SqlConnection.OpenAsync() henüz her bir ağ çağrısına kadar tam anlamıyla asenkron değil. Pool V2 şimdilik iş öğelerini yönetilen thread pool iş parçacıklarına kuyruğa alıyor, bu iş parçacıkları da senkron ağ çağrıları gerçekleştiriyor. Söz konusu ağ çağrılarında gecikme yüksekse yönetilen thread pool üzerindeki baskı artabiliyor; ek iş parçacıklarının devreye girmesini beklemek son kullanıcı tarafında gecikmeye yol açabiliyor.

Bu yüzden SQL Server’a yüksek gecikmeyle bağlanan uygulamaların yönetilen thread pool baskısını izlemesi öneriliyor. Gerekirse yönetilen thread pool boyutu artırılabilir ya da veritabanı işlemlerine eşzamanlılık sınırı konabilir. Microsoft, ilerideki çalışmalarda bu ağ çağrılarını düzelterek ek thread pool baskısını ortadan kaldırmayı planladığını belirtiyor.

Pool V2 nasıl etkinleştirilir?

Pool V2, Microsoft.Data.SqlClient 7.1.0 sürümünden itibaren kullanılabiliyor. Uygulama başlangıcında, herhangi bir veritabanı bağlantısı açılmadan önce bir kez etkinleştirmek yeterli:

AppContext.SetSwitch(
"Switch.Microsoft.Data.SqlClient.UseConnectionPoolV2", 
true);

Anahtarı uygulamanızın giriş noktasının en başına, veritabanına erişebilecek servisleri başlatmadan önce yerleştirin. ASP.NET Core uygulamalarında application builder oluşturulmadan önce konumlandırılmalı.

Gereken kod değişikliği bundan ibaret; mevcut connection string’leriniz ve veritabanı erişim kodunuz olduğu gibi kalıyor. Pool V2, EF Core ve Dapper dahil Microsoft.Data.SqlClient kullanan diğer kütüphanelerle de çalışıyor. Geri dönmek isterseniz anahtarı false yapıp uygulamayı yeniden başlatmanız yeterli.

Hangi senaryolarda değerlendirmeli?

Microsoft, Pool V2’yi temsili bir iş yüküyle denemeyi öneriyor, özellikle şu durumlarda:

  • Uygulama açılışı,
  • Sessiz bir dönemin ardından gelen trafik patlamaları,
  • Veritabanı bağlantılarına yönelik yüksek eşzamanlı talep,
  • SQL Server’a yüksek gecikmeli bağlantılar.

Pool V2’nin ileriki bir Microsoft.Data.SqlClient sürümünde varsayılan hale getirilmesi planlanıyor, dolayısıyla deneyimlerinizi dotnet/SqlClient GitHub Issues üzerinden paylaşmanız geri bildirim açısından değerli.

İlgili İçerikler

  • C# ile Memory Dump Alma: Thread Pool Tıkanmasını Yakala
  • Microsoft.Data.SqlClient ile Yerleşik Yeniden Deneme Mantığı
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • Try SqlClient’s new connection pool for faster parallel connections — Malcolm Daigle, Azure SQL Dev Corner
  • System.Threading.Channels API dokümantasyonu
  • dotnet/SqlClient GitHub deposu (benchmark kaynak kodu)
  • Azure SQL Dev Corner blogu
  • .NET ve PostgreSQL ile Azure’da Cache’i Ciddiye Almak
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

.NET 10 ile Yapay Zekâya Sıfırdan Giriş: Generative AI for Beginners v2 Neler Getiriyor?
.NET 10 ile Yapay Zekâya Sıfırdan Giriş: Generative AI for Beginners v2 Neler Getiriyor?24 Mar 2026
.NET Geliştiricileri İçin Ajan Becerileri: Kodlama Alışkanlıklarınızı Nasıl Değiştiriyor?
.NET Geliştiricileri İçin Ajan Becerileri: Kodlama Alışkanlıklarınızı Nasıl Değiştiriyor?21 Mar 2026
PowerToys 0.97: Command Palette Yenilendi, CursorWrap Geldi
PowerToys 0.97: Command Palette Yenilendi, CursorWrap Geldi23 Ağu 2026
Azure Blob Storage ile Deep Agents'a Kalıcı Dosya Sistemi
Azure Blob Storage ile Deep Agents'a Kalıcı Dosya Sistemi28 Eyl 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Asenkron G/Ç Bağlantı Havuzu cold start Eşzamanlılık Microsoft.Data.SqlClient
Önceki yazı

Azure Industrial AIoT: Microsoft 2026 Gartner Lideri

İlginizi Çekebilir

Azure Industrial AIoT: Microsoft 2026 Gartner Lideri
Aşkın KILIÇ 0

Azure Industrial AIoT: Microsoft 2026 Gartner Lideri

07/10/2026
C# Dev Kit 11.0: Daha Hızlı Yükleme ve Az Bellek
Aşkın KILIÇ 0

C# Dev Kit 11.0: Daha Hızlı Yükleme ve Az Bellek

06/10/2026
Visual Studio Azure Kredisi: Aylık Kişisel Sandbox
Aşkın KILIÇ 0

Visual Studio Azure Kredisi: Aylık Kişisel Sandbox

06/10/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • SqlClient Pool V2 Paralel Bağlantı Açmayı Hızlandırıyor
    07/10/2026 SqlClient Pool V2 Paralel Bağlantı Açmayı Hızlandırıyor
  • Azure Industrial AIoT: Microsoft 2026 Gartner Lideri
    07/10/2026 Azure Industrial AIoT: Microsoft 2026 Gartner Lideri
  • C# Dev Kit 11.0: Daha Hızlı Yükleme ve Az Bellek
    06/10/2026 C# Dev Kit 11.0: Daha Hızlı Yükleme ve Az Bellek
  • Visual Studio Azure Kredisi: Aylık Kişisel Sandbox
    06/10/2026 Visual Studio Azure Kredisi: Aylık Kişisel Sandbox
  • GitHub Secret Scanning'e Lovable ve Supabase Detektörü
    06/10/2026 GitHub Secret Scanning’e Lovable ve Supabase Detektörü
  • 25 Dolar Altında Yapay Zeka Uygulaması mı? İşte Nasıl Yapılır!
    10/03/2026 25 Dolara Yapay Zeka Uygulaması Nasıl Yapılır?
  • Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
    18/03/2026 Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL CI/CD code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans public preview Pull Request RAG REST API SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Azure Industrial AIoT: Microso...
    →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS