SQL SERVER TASARIMI

Begüm Yazıcı 👩🏻‍💻
4 min readFeb 4, 2019

Sql Server tek başına çalışan bir program değildir. Sql Server’ın doğru çalışmasından ziyade performanslı çalışması çok önemlidir. Sql Server’ın üzerinde kurulu olduğu makinenin CPU sayısı, disk konfigürasyonu, işletim sisteminin doğru seçilmesi Sql Server’ın performanslı çalışması için çok önemlidir.

SQL SERVER DİSK KONFİGÜRASYONU

Sql Server disk konfigürasyonu doğrudan performansa etki etmektedir. Bu yüzden Sql Server kurulduğunda ne için kullanılacağına karar verilip disk konfigürasyonu ona göre yapılmalıdır. Sql Server ile sağlanabilecek sistemler ikiye ayrılmaktadır. Bunlar OLTP ve OLAP’ tır. OLTP; her işlemi ayrıntılı olarak tutarken OLAP; sistemde yapılan işlemlerin özetini tutmaktadır.

OLAP sistemleri çoğunlukla raporlama yapmak için kullanılır. Okuma hızının yazma hızından yüksek olduğu alanlarda tercih edilir. OLTP sistemlerinin ise hem okuma hem de yazma işlemleri iyi olacak şekilde tasarlanması gerekir.

RAID SEVİYELERİ

RAID kavramı disk konfigürasyonu yapılırken disklerde oluşabilecek hatalara karşı bir güvenlik mekanizması olarak düşünülebilir. Sql Server’da sık kullanılan bazı RAID konfigürasyonlarının detaylarını inceleyelim. Böylece kurulum yaparken hangi disk konfigürasyonuna ihtiyacımız olduğuna kolayca karar verebiliriz.

RAID 0 DİSK GRUBU

Raid 0 disk grubu için en az iki disk gerekmektedir. Bu yapıdaki diskler için veriler ikiye bölünerek yazılır. Örneğin elimizde 500 kayıt var ve 2 disk yapılı bir disk grubumuz olduğunu düşünelim. 250 kayıt birinci diske diğer 250 kayıt ise ikinci diske yazılacaktır. Bu da yüksek bir yazma hızına sahip olacağı anlamına gelmektedir. Aynı zamanda okuma işlemi iki disk üzerinden aynı anda yapılacağı için okuma hızı da iki kat performanslı olacaktır.

Raid 0 disk grubu yazma ve okuma hızı bakımından son derece yüksek performanslı olmasına rağmen güvenlik açısından zayıf olması sebebiyle kritik uygulamalarda kullanılması önerilmez.

RAID 1 DİSK GRUBU

Raid 1 disk yapısı en az iki disk ile sağlanan bir yapıdır. Bu yapının en büyük avantajı ise veri kaybına karşı güvenli bir yapı sunmasıdır. Elimizdeki verileri eş zamanlı olarak iki farklı diske de yazar. Böylece Raid 0 disk yapısına nazaran bir nebze de olsa güvenlik sağlamış olur. Ancak bu yapının dezavantajı ise aynı verilerin bir diske daha yazılması sebebiyle yazma hızındaki performans düşüklüğü ve disklerden birinin hata durumu dışında kullanılamamasıdır.

Yazma işleminin okuma işleminden daha yoğun olduğu ve verilerin güvenli bir şekilde saklanması gereken Sql Server dosyaları Raid 1 disk grubunda saklanabilir.

RAID 5 DİSK GRUBU

En az üç disk ile yapılandırılan bu mimari Raid 0 da olduğu gibi verileri bölerek iki diske yazar, üçüncü diske de Parity denilen ve yazılan verinin bir oluşturulması için kullanılacak algoritma yazılır. Eğer iki diskten birisi bozulursa Parity verisi ile veriler tekrar oluşturulabilir. Raid 5 grubunda veri güvenliği oldukça yüksektir. Okuma hızının yazma hızından çok daha yoğun olduğu ve veri güvenliğinin önemli olduğu yapılarda kullanılabilir.

RAID 0+1 DİSK GRUBU

En az 4 diskten oluşmuş bir yapıdır. Bir disk grubu üzerinde hem Raid 0 grubunun sağladığı yüksek okuma performansı hem de Raid 1 in sağladığı yüksek güvenilirlikten faydalanabilmek için beraber kullanılmış bir mimaridir. Raid grupları arasında en iyi performansı sağlayan Raid grubu olmasına rağmen oluşturulması için daha fazla sayıda disk gerekmesi en büyük dezavantajıdır.

SQL SERVER CPU SEÇİMİ

Sql Server 2016 ile birlikte 32 bir mimariye sahip işlemciler zaten desteklenmemektedir. Bu yüzden işlemci tercihinde 64 bit seçmek zorunlu hale gelmektedir.Ancak Sql Server’ın önceki sürümlerini kullananlar için 32 bit işlemci mimarisinden bahsedecek olursak ; 32 bit olması demek makinemizin bellek adreslemesi yaparken 4 Gb bellek kullanacak olması demektir. 2 Gb bellek bölgesinin Sql Server ve diğer uygulamaların paylaşması büyük bir problem oluşturacaktır.

32 bit işlemcinin kullanıldığı bir ortamda Sql Server eğer düzenlenirse 64 Gb kadar belleği adresleyip kullanabilmektedir. Bu seçeneğe de AWE() denilmektedir.

Bellek adresleme işlemini Windows’un yapmasını istersek 32 bit işlemci yerinde 64 bit işlemci kullanmamız gerekir. 64 bit işlemciler x64 mimarisini kullandığı için daha fazla adresleme yapabilmektedirler.

SQL SERVER BELLEK KONFİGÜRASYONU

Sql Server’da iki çeşit bellek yönetimi vardır. Bunlar; dinamik bellek yönetimi ve statik bellek yönetimi. Dinamik bellek yönetiminde Sql Server üst değer belirlemez ve Sql Server kullanabileceği maksimum değer kadar alanı işgal eder. Ancak herhangi başka bir uygulamanın bellek ihtiyacı olduğunda Sql Server tarafından işgal edilen bölüm ile ilgili uygulamaya alan tahsis edilir.

Dinamik bellek yönetimin en büyük dezavantajı uygulamalar bellek tahsisi sırasında Sql Server’ın meşgul olmasıdır.

Statik bellek yönetiminde ise Sql Server’ın kullanacağı maksimum ve minimum bellek değerleri önceden belirlenmiştir. Sql Server için belirlenen üst değerden geriye kalan kısım ise diğer uygulamalara ayrılmıştır.

Statik bellek yönetiminin en büyük dezavantajı ise makine üzerindeki tüm belleğin kullanılmamasıdır.

Umarım herkes için faydalı bir yazı olmuştur.

--

--