Murat Uysal

girişimci / matematik mühendisi / yazılım uzmanı / hislerim ve deneyimlerimden yazılar

SQL Server performans iyileştirme püf noktaları

Merhabalar

Aslında sql server performans konusu çok düşünülmeden uygulamalar yayına alınır ancak kritik ve yoğun uygulamalarda küçük değişikliklerin büyük faydalar sağlaması mümkündür. SQL server ile ilgili okuduğum kaynaklardan küçük bir dikkat ile büyük fayda sağlayabilecek aşağıdaki 3 adet tespiti sizlerle paylaşmayı istiyorum. Faydalı olması dileğiyle. 


1-) Eğer kullananılacak veritabanı sadece TCP üzerinden bağlantı kurularak erişilecek ise shared bağlantı desteği disabled yapılması performans için faydalıdır. Eğer bu yapılmaz ise SQL server her bağlantı yapılacağında ilk olarak local bağntı geldiğini varsayıp işlem yapacak sonra TCP olduğunu anlayıp asıl istediğiniz işlemi yapacaktır. Bu da her sorgunuzun daha geç cevaplanmasına sebep olacaktır.

2-) Veritabanından çekilecek sorgularda genellikle SELECT* FROM TABLO_ADI şeklinde kullanılır. Ancak * karakterinin kullanımı performansın önemli olduğu uygulamalarda kullanılmaması faydalı olacaktır. Çünkü * karakteri karşılığında sql server öncelikle ilgili tablonun kaç stünü olduğunu sonra da bu stünların isimlerinin neler olduğunu öğrenip sorguyu kendisi oluşturmakta ve çalıştırmaktadır. Daima gerektiği kadar bilgiyi sorgulamak faydalıdır. SELECT AD,SOYAD from TABLO_ADI şeklinde sorgular ile gerektiği kadar bilgi almak en doğrusu ve performansı en yükseğidir.

3-) Veritabanının FILEGROWTH özelliğini belirlemek stratejik karardır. Bir veritabanına bir kaynaktan veri alarak başlatacağınız belli ve örneğin bu verinin boyutu veritabanı için 100MB a kadar çıkmasını sağlayacak ise veritabanı default ayarlar ile oluşturulmuş veritabanı 100MB ulaşmak için 30 kez alan büyütme işlemi yapmak zorunda kalacaktır. Eğer böyle bir durum belli ise veritabanının başlangıç alanını 100MB ile başlatmak ve gelecek olan veri yoğunluğuna göre veritabanının çok fazla genişleme işlemi yapmasına gerek kalmayacak şekilde büyüme oranı verilmesi yerinde olacaktır. Çünkü veritabanının alan arttırma işlemi performans konusunda ciddi maliyetleri olan bir işlemdir.



LessCss Dinamik Olarak IIS üzerinde kullanımı

Öncelikle LessCss'i indiriyoruz. aşağıdaki resimde görülen linke tıklayıp LessCss son versiyonu indiriyoruz.
Ben dosyayı "less.js" olarak kayıt ettim.

Daha sonra html sayfamı hazırlıyorum. Aşağıdaki sayfada öncelikle still.less i sonra ise less.js dosyalarını sayfaya ekliyorum


Artık stil.less dosyamızda less css kodlarımızı yazabiliriz.


Yukarıdaki yapıyı hazırladıktan sonra dosyalarımızın görünümü şu şekilde oluyor.

Bu dosyaları site üzerine yükledim ancak çalışmadığını görüyoruz.

İşte bu noktada sebebini öğrenmek isterseniz zaten size tarayıcının konsol ekranı yardımcı oluyor. Aşağıdaki ekranda ilgili dosya sunucuya yüklemiş olmasına rağmen .less uzantısının olmadığını söylüyor.

Bu hatanın sebebi IIS üzerinde mime type olarak .less uzantısının tanımlanmamasıdır.İlgili adrese gittiğinizde o dosya hiç yokmuş gibi 404 hatası verecektir.


Mime type iis yönetim arayüzünün ana sayfasında "Mime Types" şeklinde bir menü var. Bu menüden açılan ekranda sağ bölümdeki Add butonu ile aşağıdaki şekilde ekliyoruz.


Tanımladığımız anda az önce 404 hatası veren sayfada aşağıdaki gibi artık içeriğini görebilir durumdayız.


Ve artık aşağıdaki gibi html sayfamıza gittiğinizde stil.less dosyamızın çalıştığını görebiliyoruz.




Bu şekilde projenizde lessCss i dinamik olarak kullanabilirsiniz. 

Not: Performans gerektiren uygulamalarda getirdiği yük test edilmelidir. Sonuçta ilgili less.js dosyası 100KB boyutundadır ve her tarayıcı isteğinde ilgili stil.less dosyasından gerçek css kodlarına geçişin sağlanması nedeniyle statik bir css dosyasından daha yavaş çalışacaktır.

Örnekte kullandığım dosyaları aşağıdaki linkten indirebilirsiniz.
lessCss.rar (30,8KB)

iyi çalışmalar.