İç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ıç
  • Bulut Altyapı
  • Microsoft SQL Bağlantıları: PostgreSQL’den Ne Değişir
Bulut Altyapı Kurumsal Teknoloji Bağlantı havuzlama, Microsoft SQL, PostgreSQL, transaction yönetimi, Worker tabanlı mimari Aşkın KILIÇ 11/10/2026 0 Yorumlar

Microsoft SQL Bağlantıları: PostgreSQL’den Ne Değişir

Microsoft SQL Bağlantıları: PostgreSQL'den Ne Değişir
📑 İçindekiler
  1. PostgreSQL'de bağlantı neden pahalı bir kaynaktır?
  2. Sürekli gözetim: izleme, havuzlama ve sonlandırma
  3. Bağlantı tükenmesi ve küme genelindeki limit
  4. Motorun davranışı, geliştiricinin davranışını belirliyor
  5. Microsoft SQL'de worker tabanlı mimari
  6. Oturumlar hala görünür: izleme ve KILL
  7. Yeni varsayılan: havuzlamaya güvenmek
  8. İlgili İçerikler
  9. Kaynaklar ve İleri Okuma

⏱️ 5 dk okuma📅 11 Ekim 2026

PostgreSQL’den Microsoft SQL’e geçen bir geliştiricinin ilk fark ettiği şeylerden biri, bağlantı yönetiminin artık mimarinin merkezinde durmaması. Jerry Nixon’ın “PostgreSQL to SQL Field Notes” serisinin bağlantılar bölümü tam da bunu anlatıyor. İki motor SQL standardını paylaşıyor, bağlantıların sunucuda nasıl karşılandığı ise ayrışıyor. Bu yazıda PostgreSQL’de bağlantı maliyetinin mimariyi neden şekillendirdiğini ve Microsoft SQL’in worker tabanlı modelinin uygulama tasarımında neyi serbest bıraktığını özetliyorum.

Not: Microsoft dokümantasyonunda ve bu bağlamda “SQL” ifadesi, Microsoft’un SQL standardı türevi olan ve tüm Microsoft SQL veritabanı motorlarında paylaşılan T-SQL (Transact-SQL) anlamına geliyor.

PostgreSQL’de bağlantı neden pahalı bir kaynaktır?

.NET tarafından PostgreSQL’e bağlanmak kod seviyesinde oldukça basit görünür:

using Npgsql;
using var connection = new NpgsqlConnection(connectionString);
connection.Open();
// Use the connection

Bu basitliğin arkasında, geliştiricinin sürekli aklında tuttuğu bir yük var. PostgreSQL her bağlantı için bir işletim sistemi süreci kullanır. Süreçlerin kendi özel belleği ve yürütme durumu vardır, üstüne işletim sistemi zamanlaması ve bağlam değiştirme (context switching) maliyeti biner. Bağlantı başına maliyet şu formüle iniyor:

İşlemci + Bellek + Ek yük = Bağlantı maliyeti

Sonuçta, performans bozulmaya başlamadan önce bir sunucunun kaldırabileceği bağlantı sayısında pratik bir tavan oluşur. PostgreSQL’in kendi dokümantasyonu, varsayılan max_connections değerinin tipik olarak yalnızca 100 olduğunu belirtiyor. Limiti yükseltmek mümkün, ama PostgreSQL bu durumda paylaşılan bellek dahil daha fazla kaynak ayırır. Motor bağlantıyı, dikkatle yönetilmesi gereken bir kaynak olarak kurgulamış.

Sürekli gözetim: izleme, havuzlama ve sonlandırma

Uzun ömürlü tek bir PostgreSQL bağlantısı başlı başına sorun değil, sorun bunların sayıca birikmesi. Boşta (idle) bağlantılar bile kaynak tüketmeye devam eder, boşta bekleyen transaction’lar ise daha ciddi sonuçlar doğurur.

PG tarafında oturumları, durumlarını, çalışan sorguları ve transaction sürelerini izlemek için yerleşik sistem görünümü kullanılır:

SELECT *
FROM pg_stat_activity;

Buradaki amaç active, idle ve özellikle idle in transaction durumundaki bağlantıları ayırt etmek. Sunucuya ulaşan fiziksel bağlantı sayısını azaltmak için popüler bağlantı havuzlayıcı PgBouncer devreye alınabilir. Sorunlu bağlantıların yönetiminde ise bilinen komutlar devrede:

  • pg_cancel_backend()
  • pg_terminate_backend()

Bu araç seti sürekli bir dikkat ister; bağlantılar düzgün yönetiliyor mu, boşta transaction birikiyor mu diye bakmak gerekir. Küçük ölçekte veritabanını “kur ve unut” yaklaşımıyla bırakabilirsiniz, ama güvenilirlik ve ölçek konuşulmaya başlandığında bağlantı ve transaction yönetimi ana gündem maddesine dönüşür.

Bağlantı tükenmesi ve küme genelindeki limit

Önemli bir ayrıntı var. PostgreSQL’de bağlantı limitleri veritabanı düzeyinde değil, küme genelinde tanımlı. Her bağlantı ayrı bir backend sürecine karşılık gelir ve belirleyici olan, sunucunun sonlu kapasitesidir. Bir veritabanını taşıdığınızda bağlantı hesabını aynı sunucudaki diğer tüm veritabanlarını da kapsayacak şekilde yapmak zorundasınız. Tipik varsayılan olan 100 eşzamanlı bağlantı, o sunucudaki veritabanları arasında paylaşılır. Limiti yükseltebilirsiniz, bu da doğrudan kaynak ihtiyacını artırır.

Motorun davranışı, geliştiricinin davranışını belirliyor

Bu model, uygulama ve agent tasarlayan geliştiriciyi bağlantı maliyetini mimariye yansıtmaya zorlar. Pratikte karşılığı genellikle eşzamanlı bağlantı sayısını sınırlamak ve transaction’ları kısa tutmak oluyor.

Uzun süren transaction’lar eski satır sürümlerinin tutulmasına yol açar, VACUUM temizliğini engeller, tablo şişmesini (bloat) artırır, transaction ID wraparound baskısına katkıda bulunur. PostgreSQL’in bağlantı modeli bu yüzden uygulamaların nasıl tasarlanıp yönetileceğini, özellikle bağlantı ve transaction yönetimi tarafında belirgin biçimde yönlendirir. Uygulamanız bu kalıbın dışına çıkmak istediğinde, bakım maliyetini artırabilecek ek stratejiler devreye sokmanız gerekir.

Microsoft SQL’de worker tabanlı mimari

Microsoft SQL tarafında istemci kodu neredeyse aynı görünür:

using Microsoft.Data.SqlClient;
using var connection = new SqlConnection(connectionString);
connection.Open();
// Use the connection

Kod aynı, fark motorun altında. Microsoft SQL’de bir bağlantı, ömrü boyunca ayrı bir işletim sistemi süreciyle ya da kendisine tahsis edilmiş bir worker ile bire bir eşlenmez. Motor, iş yürütülmesi gerektiğinde worker atar, iş bittiğinde bu kaynaklar başka isteklerin kullanımına açılır. Boşta duran bağlantılar da bu yüzden görece az sunucu kaynağı tüketir.

Bağlantı havuzlamasını ADO.NET tipik olarak otomatik yönetir. Bu da ayrıntılı bağlantı yönetimi stratejileri kurmadan uygulamayı ölçeklendirmeyi kolaylaştırıyor.

Kaynağın öne çıkardığı başlıklar:

  • Microsoft SQL, örnek (instance) başına 32.767 eşzamanlı kullanıcı bağlantısına kadar destek verir.
  • Aynı şekilde örnek başına 32.767 veritabanına kadar destek sunar.
  • Her bağlantı, sunucu kaynak tüketiminde orantılı bir artış anlamına gelmez.
  • Bağlantı havuzlaması, yeni fiziksel bağlantı kurmanın ek yükünü daha da azaltır.
  • Uygulamalar, kendilerine uygun tempoda bağlantı açıp kapatabilir.

Bu rakamlar mimari farkı göstermek için; gerçek pratik kapasite iş yüküne, donanıma, servis katmanına ve diğer kaynaklara bağlı. Yine de tablo net, Microsoft SQL küçük bir adanmış backend süreci havuzu etrafında tasarlanmamış.

Oturumlar hala görünür: izleme ve KILL

PostgreSQL gibi Microsoft SQL’de de bağlantı ve oturum kavramları var. Aradaki ayrım, her bağlantıya ayrı bir backend sürecinin adanmaması; bu da bağlantı sayısını kaynak tüketiminden ayrıştırıyor. Bir oturum iş yürütmeye başladığında motor gereken worker ve belleği dinamik olarak atar, iş tamamlandığında bu kaynaklar başka oturumlar için serbest kalır. Bağlantı, adanmış bir süreci gereksiz yere meşgul etmeden açık kalabilir.

Kontrolü elden bırakmak zorunda değilsiniz, ihtiyaç duyacağınız yönetim görünümleri yerinde duruyor:

SELECT *
FROM sys.dm_exec_sessions
WHERE is_user_process = 1;

Örneğin desteklediği eşzamanlı kullanıcı bağlantısı sayısını doğrudan motora sorabilirsiniz:

SELECT @@MAX_CONNECTIONS AS MaxConnections;

Normal yapılandırılmış bir SQL örneğinde yanıt 32767 olur.

Bir oturumu sonlandırmanız gerekiyorsa session ID ile KILL kullanılır:

KILL <session_id>;

Yeni varsayılan: havuzlamaya güvenmek

Microsoft SQL’de bağlantıları izlemek ve oturum öldürmek, rutin bir bağlantı yönetimi stratejisi olmaktan çok son çaredir. Belirli bir gerekçe olmadan bağlantı sayısını elle yönetmeye çalışmak kaynakta açıkça antipattern diye niteleniyor. Çoğu uygulama için doğru yaklaşım, işi SQL’e ve istemci tarafındaki bağlantı havuzuna bırakmak.

Bu, kaynakların sınırsız olduğu anlamına gelmiyor. Veri hacmi ve sorgu etkinliği arttığında kaynak kullanımını izlemek, her veritabanında olduğu gibi burada da optimal performans için mantıklı. Microsoft SQL sınırsız kaynak sunmuyor; sunduğu şey, boşta bağlantıların adanmış sunucu süreçleri gerektirmediği bir bağlantı mimarisi.

Pratik kazanç, uygulamanızın veritabanının bağlantı mimarisine göre tasarlanmak yerine kendisi için en uygun bağlantı ve transaction desenlerini seçebilmesi. PostgreSQL’den gelen bir ekip için bu, bakım yükünden ve sürekli tetikte olma zorunluluğundan bir kalem eksilmesi demek.

İlgili İçerikler

  • SQL Server datetime2 ve datetimeoffset: PG’den Geçiş
  • Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
  • Microsoft SQL ile Agentic AI Güvenliği: Katman Katman Savunma

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • PostgreSQL to SQL Field Notes: Connections — Jerry Nixon (Azure SQL Dev Corner)
  • 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

GitHub Copilot Verisi Değişiyor: Ne Toplanıyor, Ne Toplanmıyor?
GitHub Copilot Verisi Değişiyor: Ne Toplanıyor, Ne Toplanmıyor?29 Mar 2026
.NET 11’de Process API’si Neden Bu Kadar Önemli?
.NET 11’de Process API’si Neden Bu Kadar Önemli?19 May 2026
AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI24 Tem 2026
Copilot Dev Camp Summit: Ücretsiz Çevrimiçi Oturumlar
Copilot Dev Camp Summit: Ücretsiz Çevrimiçi Oturumlar26 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 Bağlantı havuzlama Microsoft SQL PostgreSQL transaction yönetimi Worker tabanlı mimari
Önceki yazı

Azure App Service PHP İmajlarında Nginx Geçiş Kontrolü

İlginizi Çekebilir

Azure App Service PHP İmajlarında Nginx Geçiş Kontrolü
Aşkın KILIÇ 0

Azure App Service PHP İmajlarında Nginx Geçiş Kontrolü

10/10/2026
Kubernetes Node Swap ile Pod Yoğunluğunu 3 Katına Çıkarma
Aşkın KILIÇ 0

Kubernetes Node Swap ile Pod Yoğunluğunu 3 Katına Çıkarma

10/10/2026
Azure DevOps Wiki Editörü Monaco ile Çalışıyor
Aşkın KILIÇ 0

Azure DevOps Wiki Editörü Monaco ile Çalışıyor

09/10/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Microsoft SQL Bağlantıları: PostgreSQL'den Ne Değişir
    11/10/2026 Microsoft SQL Bağlantıları: PostgreSQL’den Ne Değişir
  • Azure App Service PHP İmajlarında Nginx Geçiş Kontrolü
    10/10/2026 Azure App Service PHP İmajlarında Nginx Geçiş Kontrolü
  • CodeQL 2.27.2: C++ Regex Ayrıştırıcı ve Go CFG Değişimi
    10/10/2026 CodeQL 2.27.2: C++ Regex Ayrıştırıcı ve Go CFG Değişimi
  • SQL AI App in a Day Atölyeleri ve Day of Data Takvimi
    10/10/2026 SQL AI App in a Day Atölyeleri ve Day of Data Takvimi
  • Kubernetes Node Swap ile Pod Yoğunluğunu 3 Katına Çıkarma
    10/10/2026 Kubernetes Node Swap ile Pod Yoğunluğunu 3 Katına Çıkarma
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • 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 App Service PHP İmajları...
    →
    📩

    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