18 Ocak 2016 Pazartesi

SQL Server Kurulumunda ve Sonrasında Yapılacak Temel Performans Ayarları

SQL Server Kurulumu yaparken çoğunlukla  bazı önemli noktalara değinmeden -bende yıllarca bu anlatacaklarım gruba dahildim- kurulum yaparız.Biraz sonra değineceğim konular test sistemleri veya normal PC kurulumları için önemli olmayabilir ama ERP ve Üretim ortamına hizmet veren sunucu sistemleri için önemsenmesi gerekir.Aşağıda anlattığım çoğu bilgiyi bende şu ana kadarki deneyimlerim ve gittiğim eğitimler-seminerler sayesinde öğrendim ve mutlaka eksik olduğum konular halen var.Öncelikle sunucu konfigürasyonumuz önemli olmaktadır. Sunucumuzun günümüz şartlarına göre donanım özellikleri CPU,RAM ve Disk yapılandırmasını baştan planlamalıyız.SQL Sunucu'yu fiziksel veya Sanal bir sunucudamı konumlandıracağız veya sanal platform ise HYPER-Wmware ikilisinden hangisini tercih edeceğiz gibi seçenekleri önceden değerlendirip karar vermeliyiz.Ardından aşağıdaki adımları gerçekleştirebiliriz;

  • İşletim sistemimizi RAID 1 yapılandırmalı  disk sistemi üzerinde tutmalı SQL Server'ın önemli sistem ve kendi üretim veritabanlarımızı,yedekleme dizinlerimizi burada tutmamalıyız.Normalde SQL Server varsayılan olarak C diski ve alt dizinlerini kurulumda hedef olarak seçmektedir.

  • SQL Sunucu kurulumu sırasında mdf dosyamız RAID yapılandırması olan Disk dizisinde konumlandırılabilir.Bu bize Fault Tolerance faydası sağlar.Örneğin hem hız hem performans için RAID 5 yapılandırmalı bir disk kullanabiliriz.Transaction Log kayıtlarının tutulduğu ldf dosyası ise mdf dosyasından farklı bir sürücüde konumlandırılabilir.

  • Bir diğer konu TEMPDB veritabanının nerede tutulacağı konusudur normalde kurulum sırasında TEMPDB C dizini altına konumlanmakta olup sonradan T-SQL komutları ile gerekirse farklı disk sürücülerine taşınıyordu.SQL Server 2016 ile birlikte TEMPDB veritabanını kurulum sırasında başka sürücülere taşıyabilmekte veritabanı dosyalarına büyüklük ayarlamaları yapabilmekteyiz.TEMPDB'de işletim sisteminden bağımsız RAID yapılandırmalı veya SSD özelliğindeki bir diskte tutulabilir.Ayrıca diğer bir performans ayarı ise Tempdb autogrowth özelliği database özelliklerin tıklanıp enable yapılmalı, autogrowth boyutu  %10 değeri yerine , 1 MB olarak değiştirilmeli,CPU core sayısı kadar ndf dosyası oluşturmalıyız.
Peki kurulumu tamamlayınca ne yapabiliriz?Öncelikle SQL Server Management Studio açılıp server instance üzerinde sağ klik ile properties kısmına gelinir buradan Memory bölümüne geçilir.Normalde SQL Server hem Dinamik Hem Statik Ram yapılandırmasını desteklemektedir ve versayılan olarak sistem dinamik Ram desteği ile gelir burada 2147483647 MB rakamını görürüz.SQL Server normalde sistemdeki fiziksel belleği sonuna kadar kullanır ve tepe değerlere  gelince page file'a yüklenir.Çok tartışılan bir konudur ama genel kanı  uzmanlarında önerdiği istikamette Static Ram kullanımıdır.Örneğin sistemimizde 128 GB fiziksel bellek var biz minimum ve maksimum bölgesindeki değerlere örneğin 128 GB fiziksel bellek için 90 GB değerini verebiliriz ve SQL Server bu sınır değerini kullanıp RAM yönetimini buna uygun olarak yapar.Diğer bir özellik ise sistem özelliklerinden page file yönetimini Windows İşletim sistemi yerine bizim ayarlayacağımız değerler ile kontroludur.Burada Page File için ayrı disk alıp diğer uygulamaları etkilemeyecek şekilde ayarlama yapılabilir.Ardından tamamlanması gereken önemli konu ise SQL Server Management studio açarak ister GUI ekranında isterde Query ekranında yedekleme görevlerini ayarlamamız yöneünde olacaktır.Bundan sonraki yapacaklarımız ise sorgu performansları ayarlanlaması,index bakımı ve DBA görevlerimizin gerçekleştirilmesi yönünde olacaktır.Bu yazıyı yaşadığım deneyimlere göre güncel tutmaya çalışacağım.