SQL Server Network Interface Nedir?
SQL Server Network Interface katmanı, istemci ile sunucu arasında ağ trafiğini yönetir. SQL Server Configuration Manager aracılığı ile hangi protokolleri kullanabileceğini ve yapılandırmasını sağlayabiliriz. SQL Server Network Interface dört protokolden oluşmaktadır;
- TCP/IP
- Shared Memory
- Named Pipes
- Virtual Interface Adapter (VIA)
TCP/IP
En çok kullanılan ağ protokolüdür. SQL Server sunucusuna IP adresi üzerinden erişime izin veren protokoldür. Varsayılan olarak 1433 portunu kullanır. Güvenlik açısından varsayılan port numarasının değiştirilmesi tavsiye edilir.
Shared Memory
SQL Server ve istemcilerin aynı makine üzerinde olduğu durumlarda otomatik olarak kullanılır. Basit ve hızlı olan bu protokolün yapılandırma özelliği bulunmamaktadır.
Named Pipes
SQL Server sunucusu ile istemcilerinin aynı yerel ağ (Local Area Network) üzerinde olduğu durumda kullanılır. SQL Server Alias tanımlanarak yerel ağ dışından da erişim yapılmasına imkan sağlar. TCP 445 portunu kullanan bu protokol yavaş çalışabileceği için kullanılması tavsiye edilmemektedir.
Virtual Interface Adapter (VIA)
En yüksek performans sağlayan bu protokoldür.
SQL Server Network Interface istemciden gelen istekleri Tabular Data Stream (TDS) isimli bir pakete dönüştürülerek ağ üzerinden sunucuya gönderilir. Tabular Data Stream istemci ile veritabanı sunucusu arasında veri aktarımı için kullanılan uygulama katmanı protokolüdür. Sunucu üzerinde TDS paketlerini dinleyen endpoint‘ler mevcuttur. Her network protokolüne özgü bir TDS endpoint mevcuttur.
SQL Server üzerinde endpoint açmak için;
[sql]
ALTER ENDPOINT [TSQL DEFAULT TCP] STATE=STARTED
[/sql]
SQL Server üzerinde endpoint kapatmak için;
[sql]
ALTER ENDPOINT [TSQL DEFAULT TCP] STATE=STOPPED
[/sql]
SQL Server endpoint listesine ulaşmak için;
Listedeki Dedicated Admin Connection isimli endpoint detayı için tıklayınız.
Not: SQL Server’da bir endpoint kapatılması yeni bağlantıları engelleyecektir. Mevcut bağlantılar kapatılmayacaktır.
Tabular Data Stream paketlerinin varsayılan boyutu 4096 Byte olup istemci tarafından bu boyut değiştirilebilir. Paket boyutu istemci tarafında SQL Server’a bağlantı kurulacak connection_string üzerinden belirtilebileceği gibi SQL Server üzerinden de varsayılan ayar değiştirilebilir.
İstemci tarafında paket boyutunu değiştirmek için örnek connection string;
Data Source=SERVERNAME;Initial Catalog=DBNAME;User Id=USERNAME;Password=SIFRE;Packet Size=12288;
Not: Eğer uygulamanız büyük miktarlarda veri gönderiyorsa ağ paket boyutunun arttırırması ağ üzerinden performans kazancı sağlayacaktır.