Bu makalede Linked Server kurulum ekranında bulunan Server Options kısmında kavramların ne işe yaradığını ele alalım.
Linked Server Properties’den Server Options sekmesine tıklatılır.

Gelen ekranda bazı ayarların yapılması gerekmektedir.

Bu kavramların ne anlama geldiğine değinelim.
- RPC uzaktan procedure çağrısı anlamına gelmektedir.
- Data Access: Varsayılan Doğru’dur. Yanlış olduğunda tüm bireysel uzaktan sorgu yürütmeleri başarısız olur. Bu ayar RPC Çıkışından bağımsızdır
- RPC / RPC Çıkışı: true değeridir. Uzak işlem aramalarında ve çalışan store procedurelere linked server üzerinden izin verir.
- Use Remote Collation / Collation Name: Yanlış olduğunda tüm uzak sunucularda localdeki collation kullanılacak ve ona göre işleme alınacak. Doğru olduğunda ise uzak sunucunun harmanlaması kullanılacaktır.
Always on sistemlerde sisteme getireceği yükü azaltmak için okuma istekleri secondary sunucusuna yönlendirilir Bu yönlendirmeyi linked server üzerinden yapmak için provider string kısmına ApplicationIntent=ReadOnly ifadesinin eklenmesi gerekmektedir.

Bu komutlar ile linked server bağlantılarımız görebiliriz.

Bazen kullanıcılar linked server da performansta bir sorun yaşıyorsa ilk sorgulayacağımız işlemlerden bir tanesi kullanıcının çektiği sorguların nasıl çekildiğine bakmaktır.

Sorgularımızın resimde olduğu gibi select ifadesiyle çekilmesi kendi local’inde oluşturmuş olduğu execution planı kullanır.
Sorgularımızın open query ile çağırılması doğru execution plan oluşmasına sebep olur. Execution planı hedefteki sunucudaki execution planı kullanır.
Select * From Openquery ([S1\TEST],’select * From …. şeklinde çağrılması execution planın hedefteki bulanan planın devreye almasına sebep olur. Yoksa normal linked server üzerinden select ifadesiyle çekilmesi performans sorunları yaşayacağımızı göstermektedir.
Not: Büyük veritabanları için linked server kurulması önerilmez. Büyük veritabanlarının kaynak ortamından linked server üzerinden çekilmesi network üzerinden geleceği için performans anlamında sıkıntıya sebebiyet verecektir. Büyük veritabanları için linked server üzerinden veri çekilmektense uygulama katmanı tarafından verilerin ilgili sunuculardan çekilip işlem yapılması gerekmektedir. Yazlımcı burada uygulama tarafında veriyi çekip bir değişkene atacak bu şekilde farklı sunucularda verileri aldıktan sonra uygulama tarafından işlemlerini yapmış olacaktır. Bu ifade connection pool üzerinden de yapılır. Manuel bir şekildede veriler çekilip temp tablolar üzerinden işlem yapılmaktadır. linked server ortamında ise tb’lık verileri çekip memory üzerine alıp daha sonra işlem yapılır. Diğer uygulama tarafında olan yöntemde ise bu gibi sorunlar karşılaşılmaz veriyi çek ne yapıyorsan yap modundadır. Kısacası uygulama içerisinden iki tane bağlantı sağlanmaktadır. Bu bağlantılar ilgili veritabanlarından verileri çekip bir temp tabloya alır. Bu ifadeler sonucunda veri alındıntan sonra join işlemi yapılmaktadır. Linked server üzerinden join işlemi yapıldığında veriler gelmeden join işlemi yapılmaktadır.
Not: Gerçek sistemler üzerinden genellikle linked server tercih edilmez. Bunun yerine uygulama tarafından yazılımcının birden fazla connection string ile verileri alınması sağlanabilir. Yoksa linked server üzerinden büyük veri setlerinin çekilmesi sıkıntıya sebebiyet verecektir.
Başka bir makalede görüşmek dileğiyle..
“Şu muhakkak ki inkâr edenleri uyarsan da, uyarmasan da onlar için birdir. Onlar inanmazlar.”Bakara-6