MSSQL Server Instance Properties Ayarları

Bu makalede İnstance Properties ekranında nelerin olduğu hangi bölümde  hangi konfigürasyonların yapılması gerektiğini ele almış olacağız.  SSMS üzerinde instance’a sağ tıklanıp Properties ekranına tıklanır.

  1. Gelen ekranda General sekmesi karşımıza çıkıyor. Bu ekranda ne gibi açıklamalar olduğuna değinelim.
  • Product: Bu, SQL Server’ın Enterprise sürümünü kullandığınızı ve lisanslama modelinin çekirdek tabanlı olduğunu gösteriyor. Bu model, kullanılan işlemci çekirdeği sayısına göre lisans ücretinin belirlendiği bir modeldir. 
  • Operating System: SQL Server, Windows Server 2019 Standard sürümü üzerinde çalışıyor. Versiyon numarası ise 10.0 olarak belirtilmiş. 
  • Platform: SQL Server’ın çalıştığı platformun Windows olduğunu gösteriyor. 
  • Version: Bu, kullanılan SQL Server’ın sürüm numarasıdır. 14.0 sürümü SQL Server 2017’yi işaret eder. 
  • Language :  English (United States)- SQL Server, ABD İngilizcesi dil paketini kullanıyor. 
  • Memory: SQL Server bu kadar miktarda belleği (RAM) kullanıyor. 
  • Processors (İşlemciler):  SQL Server yalnızca 4 işlemci kullanacak şekilde yapılandırılmış. 
  • Root Directory:  Bu, SQL Server’ın yüklü olduğu kök dizini gösterir. 
  • Server Collation: Sunucunun sıralama düzeni Türkçe diline göre ayarlanmış. CI (Case Insensitive), büyük/küçük harf duyarlılığının kapalı olduğunu ve AS (Accent Sensitive), aksan duyarlılığının açık olduğunu belirtir. 
  • Is Clustered (Kümelenmiş mi?): SQL Server şu an kümelenmiş bir yapıda çalışmıyor. Cluster, yüksek erişilebilirlik ve yük devretme için kullanılan bir yapılandırmadır. 
  • Is XTP Supported (XTP Destekleniyor mu?): SQL Server, In-Memory OLTP (XTP – eXtreme Transaction Processing) özelliğini destekliyor. Bu, bellekte veri işlemlerini hızlandırmak için kullanılan bir teknolojidir. 
  • Is HADR Enabled (HADR Aktif mi?): High Availability Disaster Recovery (Yüksek Erişilebilirlik ve Felaket Kurtarma) özelliği etkinleştirilmiş durumda. Bu, SQL Server’ın veri kaybını en aza indirmek için yapılandırılmış olduğu anlamına gelir. Bu bilgiler, SQL Server’ın çalıştığı sistemin genel durumunu ve özelliklerini gösteriyor. 

General kısmındaki açıklamalardan sonra Memory bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Minimum Server Memory (in MB): Bu, SQL Server’ın minimum bellek kullanımı için belirlenen sınırdır. 0 olarak ayarlanmış olması, SQL Server’ın başlangıçta herhangi bir minimum bellek kısıtlaması olmadan çalışacağını gösterir. Bu durumda, SQL Server ihtiyaç duyduğu bellek miktarını dinamik olarak alacaktır. Bu kısımda belirli boyutta Memory miktarı belirtilerek açılıştı sql server’a ayrılmış bir şekilde tahsis edilir.

Maximum Server Memory (in MB): Burada, SQL Server’ın kullanımına izin verilen maksimum bellek miktarını ayarlayabilirsiniz. Büyük sistemlerde, SQL Server’ın bellek kullanımı diğer uygulamalarla paylaşılmak üzere sınırlandırılabilir. Çünkü sql server memory’i çok sever tahsis ettiği memory’i işletim sistemini iade etmez. Bunun için sql server’a diğer uygulamalarıda düşünerek bir alan tahsis edilir. Aşağıdaki sayfadan fiziksel sunucunuzun özellikleri yazılarak sql server’ın kullanacağı max alan belirlenebilir. İlgili sayfadan memory ayarlanması yapılabilir.

Not: Numa Node olan sistemlerde Min Server Memory ve Max Server Memory değerleri aynı olacak şekilde set edilmelidir. Bu şekilde set edildiğinde memory Allocate ve deallocate işlemleri yapılmayacaktır. Max server memory’in set edilmesiyle sql server’ın memory’i eşit bir şekilde numa node’lara dağıtması için elinde daha iyi bir değer olmuş olur. Bu yapıda Foreign Page yapısını azaltarak sorguların performansına etki eder.

  • NUMA Node: Her CPU ve ona bağlı RAM grubuna bir node denir.
  • Foreign Page: Bir node’daki işlem, başka bir node’daki belleğe erişmek zorunda kalırsa bu sayfaya “foreign page” denir. Bu yavaşlatır.
  • Min = Max Server Memory: Bellek sabitlenmiş olur, SQL Server çalışma sırasında bellek büyütüp küçültmez.
  • Belleğin NUMA’ya eşit dağıtılması: Yük, her node’un yerel belleğine uygun şekilde dağılır → daha az latency.

Index Creation Memory (in KB, 0 = dynamic memory): Bu ayar, SQL Server’ın indeks oluşturma işlemleri için ayrılan belleği belirler. 0 olarak ayarlanmış olması, dinamik belleğin kullanılacağını ve SQL Server’ın ihtiyaç duyduğu kadar bellek alacağını gösterir. Bu genellikle varsayılan olarak bırakılır ve SQL Server indeks oluşturma sırasında belleği dinamik olarak ayarlar. 

Minimum Memory Per Query (in KB): Bu, her bir sorgu için ayrılan minimum bellek miktarıdır. SQL Server bu minimum bellek miktarını sorgu işlemleri sırasında kullanacaktır. Genellikle bu ayar sorgu performansını optimize etmek için yapılandırılır, daha fazla bellek ayrılması bazı sorguların daha verimli çalışmasına yardımcı olabilir.

Genel Değerlendirme: Bu yapılandırma, SQL Server’ın bellek kullanımı ile ilgili önemli kontroller sağlar. Özellikle büyük veritabanları ve yoğun sorgu yükleri ile çalışıyorsanız, SQL Server’ın bellek kullanımı üzerinde dikkatli denetim yapmanız gerekebilir. Maksimum bellek kullanımının sınırlandırılması ve her sorguya ayrılan minimum bellek miktarının doğru ayarlanması, performans optimizasyonu açısından önemlidir. 

Yapılandırmaların “Configured values” (Yapılandırılmış değerler) kısmında olduğuna dikkat edilmelidir, yani bu ayarlar şu anda etkin konumda değil ancak yapılandırılmış durumda. Running values kısmına tıkladığımızda ise yapılandırılmış kısımları görmekteyiz.

  1. Memory kısmındaki açıklamalardan sonra Processors bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Bu bölüm, SQL Server’ın işlemci kullanımını kontrol etmek için kullanılır. 

Automatically set processor affinity mask for all processors: Bu, SQL Server’ın işlemci bağlılık maskesini (affinity mask) otomatik olarak ayarladığı anlamına gelir. İşlemci bağlılık maskesi, SQL Server’ın hangi işlemcileri kullanacağını belirleyen bir ayardır. Eğer bu seçenek aktifse, SQL Server otomatik olarak tüm işlemcileri kullanacak şekilde yapılandırılmıştır. Bu, SQL Server’ın mevcut tüm işlem gücünü kullanmasını sağlar. 

Automatically set I/O affinity mask for all processors: Bu ayar, SQL Server’ın girdi/çıktı (I/O) işlemlerini hangi işlemcilerin yöneteceğini belirler. Otomatik olarak ayarlanması, SQL Server’ın tüm işlemcileri disk I/O işlemleri için kullanacağını gösterir. Bu, disk veya ağdan veri okuma/yazma gibi işlemler için işlemcilerin kullanılmasını düzenler. 

Bu iki seçeneği seçmeyip iş yüklerini cpu’lar arasında paylaştırabilirsiniz ama çok tavsiye edilen bir yöntem değildir. İlk iki seçeneği seçerek yük dağılımının otomatik yapılmasını sağlamalıyız. Default olarak ta bu şekildedir.

Processor:  Bu kısımda “ALL” ve NumaNode0 (CPU0) olarak belirtilen işlemci düğümleri bulunuyor. “ALL” seçeneği, SQL Server’ın tüm işlemci çekirdeklerini kullanabileceğini belirtir. Buradaki yapılandırmada, yalnızca “NumaNode0” olarak belirtilen ilk işlemci düğümü kullanılmak üzere ayarlanmış. 

NUMA (Non-Uniform Memory Access) mimarisi, birden fazla işlemci düğümünün farklı bellek havuzlarına erişebildiği bir yapıdır. Bu, büyük ölçekli sistemlerde performansı artırmak için kullanılır. Burada “NumaNode0”, bu yapılandırmadaki ilk işlemci düğümünü temsil eder. 

CPU0: “CPU0” işaretli değil, yani bu ekran görüntüsünde yalnızca işlemci düğümü gösterilmiş ancak işlemci çekirdeklerinden hiçbiri manuel olarak seçilmemiş. Eğer işlemcilerin her biri manuel olarak seçilseydi, SQL Server yalnızca belirlenen işlemciler üzerinde çalışacaktı. 

Maximum Worker Threads (Maksimum iş parçacığı): Bu, SQL Server’ın iş parçacıkları (threads) için varsayılan ayarları kullanacağı anlamına gelir. SQL Server, iş parçacıklarını dinamik olarak yönetecektir ve manuel bir sınır belirlenmemiştir. SQL Server’ın ihtiyaç duyduğu kadar iş parçacığını otomatik olarak oluşturmasına izin verir. İleri düzey yapılandırmalarda, belirli bir iş yükü altında daha iyi performans almak için iş parçacığı sayısı sınırlandırılabilir. 

Not: CPU tarafından çalıştırılan kod parçacığıdır.

Bu yapılandırma, SQL Server’ın mevcut tüm işlemci ve işlemci düğümlerini kullanacak şekilde otomatik olarak ayarlandığını gösterir. NUMA mimarisi kullanıldığından, SQL Server, performansı optimize etmek için her bir NUMA düğümü arasında işlemleri dengeleyebilir. Ancak, manuel ayarlamalar yapılmamış, SQL Server’ın kendisi işlemci bağlılık maskesi ve I/O bağlılık maskesini otomatik olarak yönetiyor. SQL Server’ın iş yüküne göre işlemcilerin ve iş parçacıklarının manuel olarak yönetilmesi, büyük veri işleme senaryolarında daha fazla optimizasyon sağlar, ancak bu ayarlamalar dikkatli yapılmalıdır çünkü yanlış ayarlamalar performans sorunlarına yol açabilir.

  1. Processors kısmındaki açıklamalardan sonra Securtiy bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Bu bölüm, SQL Server’da kimlik doğrulama ve oturum açma güvenliğiyle ilgili önemli ayarları yapılandırmanıza olanak tanır. 

Server Authentication:

Windows Authentication Mode: Sadece Windows kimlik doğrulama modu kullanılır. Yani SQL Server’a erişim sadece Windows hesapları üzerinden yapılır. Bu mod, genellikle daha güvenli kabul edilir, çünkü Windows güvenlik yapılandırmalarına dayanır. 

SQL Server and Windows Authentication Mode: Bu seçeneğin aktif olduğu görülüyor. Bu mod, hem Windows hesapları hem de SQL Server özelinde oluşturulan hesaplar için kimlik doğrulama sağlar. Bu, SQL Server’a hem Windows kullanıcılarının hem de SQL Server’da yerel olarak tanımlanan SQL kullanıcılarının erişmesine izin verir. Karma mod olarak da bilinir ve özellikle SQL Server’a dış erişim gerektiğinde kullanılır. 

Login Auditing:  Bu bölüm, SQL Server’da oturum açma denetiminin ne kadar kapsamlı yapılacağını belirler. 

  • None: Denetim yapılmaz.
  • Failed logins only: Şu anda bu seçenek etkin durumda. Yalnızca başarısız oturum açma girişimleri SQL Server Error Log’a  kaydedilir. Bu, olası saldırı veya yanlış giriş denemelerini izlemek için önemlidir. 
  • Successful logins only: Sadece başarılı oturum açma girişimleri SQL Server Error Log’a  kaydedilir. 
  • Both failed and successful logins: Hem başarılı hem de başarısız girişler SQL Server Error Log’a  kaydedilir. Giriş işlemlerinin tamamının izlenmesini sağlar. 

Server Proxy Account: Bu seçenek, SQL Server’da belirli işlemler için vekil bir hesap (proxy account) kullanma yeteneğini etkinleştirir. Vekil hesap, genellikle SQL Server Agent gibi görevlerin farklı kimlik doğrulama bilgileriyle çalıştırılması gerektiğinde kullanılır. 

 Enable server proxy account: Bu seçenek işaretlenmemiş, yani şu anda bir proxy hesabı kullanılmıyor. 

Options

  • Enable Common Criteria compliance: Bu seçenek işaretli değil. Common Criteria, uluslararası kabul gören bir güvenlik standardıdır. Bu ayarın etkinleştirilmesi, SQL Server’ın Common Criteria güvenlik gereksinimlerine uygun çalışmasını sağlar. 
  • Enable C2 audit tracing: Bu da işaretli değil. C2 denetim izi, yüksek güvenlikli ortamlarda SQL Server’ın tüm güvenlikle ilgili işlemleri (girişler, başarısız girişimler, işlemler vb.) kaydetmesine olanak tanır. Bu özellik büyük boyutlu günlük dosyaları üretebilir ve bu nedenle dikkatli kullanılmalıdır. 
  • Cross database ownership chaining: Bu özellik işaretlenmemiş. Bu ayar, veritabanları arasında sahiplik zinciri oluşturulmasına izin verir. Genellikle daha karmaşık veritabanı yapılarında, bir veritabanından diğerine erişim gerektiğinde kullanılır. Güvenlik açısından dikkatli yapılandırılması gerekir, çünkü sahiplik zincirleri yanlış kullanıldığında güvenlik açıklarına yol açabilir. 
  1. Securtiy kısmındaki açıklamalardan sonra Connections bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Bu ayarlar, SQL Server’a yapılan bağlantıların nasıl yönetileceğini ve sınırlandırılacağını belirler. 

Maximum number of concurrent connections (0 = unlimited): Bu ayar, SQL Server’a aynı anda yapılabilecek maksimum bağlantı sayısını belirler. “0” değeri, sınırsız sayıda bağlantıya izin verildiğini gösterir. Büyük sistemlerde, performansı optimize etmek için bu sınır belirlenebilir, ancak burada sınırsız bırakılmış. 

Use query governor to prevent long-running queries: Bu seçenek işaretlenmemiş. Eğer işaretli olsaydı, SQL Server uzun süren sorguları engellemek için belirli bir süre sınırı uygulardı. Burada bu özellik devre dışı bırakılmış, yani sorguların ne kadar uzun süreceğine dair bir sınır uygulanmıyor. Altındaki ayar olan 0 değeri, sorgular için herhangi bir zaman sınırı olmadığını gösterir. Eğer bu özellik etkinleştirilseydi, burada belirtilen süreye göre uzun süren sorgular durdurulurdu.  Saniye cinsindedir.

Default connection options: Bu bölüm, SQL Server’a bağlanan oturumlar için varsayılan bağlantı seçeneklerini içerir. İşaretlenmeyen seçenekler şu an devre dışı durumda:

 • Implicit transactions (Dolaylı işlemler): Bu özellik etkin olduğunda, SQL Server her bir işlem için otomatik olarak bir transaction başlatır. 

  • Cursor close on commit:  Etkin olursa, bir transaction tamamlandığında imleç otomatik olarak kapatılır. 
  • ANSI warnings: SQL Server, potansiyel veri kaybına yol açabilecek bazı veri dönüştürme hatalarında uyarı mesajları döndürür. 
  • ANSI padding (ANSI doldurma): Bu seçenek, sabit uzunluklu veri türlerinde (char, binary vb.) doldurma davranışını kontrol eder.
  •  ANSI NULLS:  Bu ayar etkin olduğunda, SQL Server’da NULL değerlerle yapılan karşılaştırmalar ANSI standartlarına uygun olarak yapılır. 
  • Arithmetic abort: Bu seçenek etkin olduğunda, aritmetik bir hata meydana geldiğinde (örneğin, sıfıra bölme) SQL Server işlemi durdurur. 
  • Arithmetic ignore: Bu, aritmetik hataların görmezden gelinmesine ve işlemin devam etmesine izin verir. 
  • Quoted identifier (Tırnak içindeki tanımlayıcılar):  Etkinleştirildiğinde, SQL Server’da çift tırnak (” “) içindeki tanımlayıcıların, veritabanındaki tablo ve sütun adlarını ayırt etmesi sağlanır. 

Remote server connections (Uzak sunucu bağlantıları): 

  • Allow remote connections to this server: Bu, SQL Server’ın uzaktan erişime açık olduğunu gösterir, yani bu sunucuya uzak makinelerdan bağlanılabilir. 
  • Remote query timeout (in seconds): 600 saniye (10 dakika) olarak ayarlanmış. Bu ayar, SQL Server’ın başka bir sunucuya gönderilen uzak bir sorguyu ne kadar süre bekleyeceğini belirler. 600 saniye sonunda yanıt alınamazsa sorgu zaman aşımına uğrar. 
  • Require distributed transactions for server-to-server communication: Bu seçenek işaretlenmemiş. Eğer işaretlenseydi, sunucular arası iletişimde dağıtık işlemlerin kullanılması gerekirdi. Dağıtık işlemler, birden fazla veritabanı veya sunucu arasında tutarlı işlem yönetimi sağlar, ancak bu daha karmaşık bir yapı gerektirir. 
  1. Connections kısmındaki açıklamalardan sonra Database Settings bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Bu bölüm, SQL Server’daki veritabanı ayarlarının nasıl yapılandırıldığını kontrol etmenizi sağlar.

Default index fill factor: Bu ayar, bir indeks oluşturulduğunda SQL Server’ın her sayfada ne kadar boş alan bırakacağını belirler. “0” değeri, sayfaların tamamen doldurulacağı anlamına gelir. Performans açısından bazı durumlarda belirli bir doluluk oranı bırakmak avantajlı olabilir, çünkü güncellemeler sırasında sayfaların parçalanmasını önleyebilir. 

Backup and Restore: Bu kısımda yedekleme ile ilgili zamanlayıcılar ve süreçlerle ilgili seçenekler yer alır: 

  • Specify how long SQL Server will wait for a new tape: SQL Server’ın yeni bir yedekleme medyasını (örneğin, bir manyetik bant) ne kadar süre bekleyeceğini ayarlamanıza olanak tanır. Burada farklı seçenekler bulunur: 
  • Wait indefinitely: Yedekleme işlemi tamamlanana kadar sonsuza dek bekler. 
  • Try once: Sadece bir kere dener. 
  • Try for [X] minute(s): Belirtilen dakika kadar deneyecek şekilde ayarlanabilir. 

Default backup media retention (in days): Varsayılan yedekleme medyasının saklanma süresi burada ayarlanır. Yedekleme dosyalarının kaç gün saklanacağı belirlenir. 0 olarak ayarlanmış, yani yedekleme dosyalarının saklama süresi kısıtlanmamış.

Compress backup: Bu seçenek işaretlenmemiş, yani yedekleme sıkıştırılmadan yapılıyor. Sıkıştırma, yedekleme dosyalarının boyutunu azaltabilir ve disk alanından tasarruf sağlar. 

Backup checksum: Bu seçenek, yedekleme işlemi sırasında bir denetim toplamı hesaplanmasını sağlar ve yedeklemenin bütünlüğünü doğrular. Veri bütünlüğünü garanti altına almak için bu seçeneğin etkinleştirilmesi önerilir. 

Recovery interval (minutes): Kurtarma aralığı, SQL Server’ın bir sistem arızası durumunda veritabanını ne kadar sürede kurtarmaya çalışacağını belirler. Burada kurtarma aralığı 0 olarak ayarlanmış. Bu, SQL Server’ın otomatik olarak en uygun kurtarma aralığını kullanacağı anlamına gelir. Genellikle varsayılan olarak bırakılır, ancak performans ihtiyacına göre ayarlanabilir. 

Database default locations: Burada SQL Server’ın varsayılan olarak veritabanı dosyalarını ve yedeklerini depolayacağı konumlar belirtilir

  1. Database Settings kısmındaki açıklamalardan sonra Advanced bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Bu ayarlar, sunucunun daha detaylı işleyişini kontrol eden ve performans ile güvenlik açısından önemli olan yapılandırmaları içerir. Şimdi her birini detaylı olarak açıklayalım.

1-Containment 

Enable Contained Databases: Bu ayar etkinleştirilirse, veritabanları sunucunun dışındaki kullanıcılar için bağımsız hale gelebilir. Kapsamlı veritabanları, SQL Server’da tanımlanan sunucu güvenliği ve kullanıcı ayarlarına bağımlı olmadan çalışabilir. Genellikle gelişmiş güvenlik senaryolarında kullanılır. Bu ayarın devre dışı olması, standart SQL Server güvenlik modelinin kullanıldığını gösterir. Containede Database yapısının ne olduğunu anlamak için ilgili makaleyi okumalısınız.

2-FILESTREAM 

FILESTREAM Access Level: FILESTREAM, SQL Server’ın büyük boyutlu ikili verileri (örneğin, belgeler, videolar) dosya sistemi üzerinde depolamasına ve bu verilere SQL Server üzerinden erişilmesine olanak tanır. Bu ayarın devre dışı bırakılması, dosya sistemi tabanlı büyük veri yönetiminin kullanılmadığını gösterir. 

FILESTREAM Share Name: FILESTREAM devre dışı olduğu için, bu sadece bir ad olarak belirtilmiş: TEST23 isntance’ında etkin olsaydı, bu isimle veriler paylaşılırdı. 

3-Miscellaneous

  • Allow Triggers to Fire Others: Bu ayar, bir tetikleyicinin başka bir tetikleyiciyi çalıştırmasına izin verir. Yani, bir işlem sırasında bir tetikleyici başka bir tetikleyiciyi başlatabilir. Karmaşık iş kurallarını uygulamak için kullanılır, ancak dikkatli yönetilmesi gerekir, çünkü döngüsel tetiklemeler performans sorunlarına yol açabilir. 
  • Blocked Process Threshold: Bu ayar, bir işlem engellendiğinde SQL Server’ın bu durumu raporlaması için beklemesi gereken süreyi belirtir. “0” değeri, bu özelliğin devre dışı olduğunu gösterir. 
  • Boost SQL Server Priority: Bu ayar etkinleştirildiğinde, SQL Server işlemlerine sistemde daha yüksek bir öncelik verilir. Genellikle, SQL Server’ın diğer uygulamalarla kaynak rekabeti yaşadığı durumlarda kullanılır, ancak çok dikkatli kullanılmalıdır, aksi takdirde sistemde dengesizliklere yol açabilir. 
  • Cursor Threshold: -1 olarak ayarlanmış, yani SQL Server imleç performansını dinamik olarak yönetiyor. Bu ayar, belirli bir işlemci kullanımını aştığında imleçlerin performansını optimize etmeye yardımcı olabilir. 
  • Default Full-Text Language: 1033 olarak ayarlanmış. Bu dil kodu İngilizceyi temsil eder. Tam metin aramaları için varsayılan dil ayarıdır. 
  • Default Language: English olarak ayarlanmış. Bu, SQL Server’ın kullanıcı oturumları için varsayılan dili belirler. 
  • Full-Text Upgrade Option: Rebuild olarak ayarlanmış. Bu, tam metin dizinlerinin SQL Server sürümü yükseltildikten sonra yeniden oluşturulacağı anlamına gelir. Eski verilerle uyum sorunlarını önlemek için önemlidir.
  •  Max Text Replication Size: Bu ayar, çoğaltma işlemleri sırasında çoğaltılabilecek maksimum metin veri boyutunu belirler (kilobayt cinsinden). Çok büyük verilerde bu sınırın ayarlanması gerekebilir. 
  • Optimize for Ad hoc Workloads:  Bu ayar etkinleştirildiğinde, SQL Server nadiren çalıştırılan sorgular için daha az bellek kullanarak performansı optimize eder. Büyük veri tabanlarında performans artırıcı olabilir. 
  • Scan for Startup Procs:  Bu ayar devre dışı olduğunda, SQL Server başlangıçta saklı prosedürleri taramaz. Etkinleştirildiğinde, başlangıçta belirli saklı prosedürlerin otomatik olarak çalıştırılmasını sağlar. 
  • Two Digit Year Cutoff: Default değer olan 2049 olarak ayarlanmış. Bu ayar, 2 basamaklı yıl verisini hangi yüzyıla ait kabul edeceğini belirler.. Örneğin, “50” yazıldığında 2050’yi mi yoksa 1950’yi mi kastettiğini belirlemek için kullanılır. Eski verilerle çalışan sistemlerde kullanılır. Kural:
    00 – 49 arasındaki 2 haneli yıllar → 2000 – 2049
    50 – 99 arasındaki 2 haneli yıllar → 1950 – 1999
  • Use Windows fibers (Lightweight pooling): False. Bu ayar devre dışı. Hafif iş parçacığı kullanımı (fiber), SQL Server’ın iş parçacığı planlamasını optimize etmek için kullanılır, ancak genellikle yalnızca belirli performans sorunlarının olduğu durumlarda kullanılır. 

4-Network 

  • Network Packet Size: 4096 bayt olarak ayarlanmış. SQL Server’ın ağ üzerinden veri gönderip alırken kullandığı paket boyutunu gösterir. Büyük paket boyutları, büyük veri transferlerinde performansı artırabilir, ancak küçük veriler için düşük paket boyutları daha verimli olabilir. 
  • Remote Login Timeout: 10 saniye olarak ayarlanmış. SQL Server, uzak bir bağlantı kurarken bağlantı zaman aşımı süresini belirtir. Bu süre içinde bağlantı kurulamazsa, oturum açma denemesi başarısız olur. 

5-Parallelism

  •  Cost Threshold for Parallelism: Bu ayar, bir sorgunun paralel olarak çalıştırılmasına karar verilmesi için gerekli minimum maliyeti belirler. Daha yüksek bir değer, yalnızca daha maliyetli sorguların paralel işlenmesini sağlar. Bu yapıda sql server herhangi bir sorgu için arka planda bir maliyet oluşturmaktadır. Belirlemiş olduğumuz eşit değeri sorgunun maliyetinden büyük veya küçükse sql server kullanması gereken Cpu değerine karar verir. Bu yapı Max Degree of Parallelism yapısı ile bağlantılıdır.
  • Locks: 0 olarak ayarlanmış. Bu, SQL Server’ın dinamik kilit yönetimini kullanacağını gösterir. Kilit sayısının manuel olarak ayarlanması, nadiren kullanılır ve performans sorunlarına yol açabilir. 
  • Max Degree of Parallelism:  Bu, SQL Server’ın bir sorguyu çalıştırırken kullanabileceği maksimum işlemci sayısını belirtir. Cost Threshold for Parallelism değeri ile bağlantılıdır. “0” değeri, sistemdeki tüm işlemcilerin kullanılabileceğini gösterir. Burada bir limit belirlenmemiştir.

Not: MAXDOP değeri bir numa node’daki cpu sayısını geçmemesi gerekir. MAXDOP, numa node içerisindeki cpu sayısını geçmediği takdirde gelen sorgu büyük olasılıkla local memory’i kullanacaktır. Ve buda Foreign Page gerekliliğini azaltarak sorguların performansına etki edecektir. Sorgularımızda sos scheculer yıeld ifadesi görmemize sebebiyet verecektir. MAXDOP ayarı sistemin türüne göre yapılmalıdır. OLTP sistemlerde genelde bu değer 1 olur. Önemli bir ayrıntı olarak MAXDOP 0 olarak ta set edilmemeli. Çünkü 0 olduğunda, sorgu, sunucudaki CPU sayısı kadar paralel çalışabilir anlamına geliyor. Aşağıdaki sorgu ile memorydeki bilgileri öğrenebiliriz.

select  counter_name , cntr_value / 1024 memory_mb ,
        instance_name,*from    sys.dm_os_performance_counters
where  [object_name] like '%MSSQL$TEST:Memory Manager%'

Not: Bir sistemdeki CPU sayısı ve saat hızı arttığında, Memory anlamında darboğazlar başlar. Artan CPU ve saat hızı nedeniyle artan işlemler, tek memory bus üzerinde bir çekişme haline girerler. Bu yüzden memory’de bazı beklemeler yaşanmaya başlar. Numa, bunu önlemek için tasarlanmış bir yapı olarak karşımıza çıkıyor. Örnekleme üzerinden gidecek olursak 64 CPU‘ya sahip bir sistem olduğunu düşünelim. Sistemde 8 tane numa Node’u olsun. Böylelikle her numa node’unda 8 tane CPU olur. Ve bu 8 CPU’lu numa node’u için kendine ayrılmış özel bir memory tahsis edilir. Her numa node’un kendi içersindeki memory’e local memory denir. Diğer node lar üzerindeki memory’e ise foreign memory denir.  Ve numa node ları üzerindeki her memory grubu kendine ait memory bus üzerindedir. Var olan cpu sayısının bölünmesi ve bu bölünen CPU grubuna memory tahsis edilmesiyle birlikte memory darboğazımız aşılmış olur. Artık her numa node’una ait CPU üzerinde çalışan işlem çalıştığı numa node’un kendine ait olan memory bus’ı üzerine gidecek ve latency azalacaktır.

Query Wait: -1 olarak ayarlanmış. Bu, sorguların kilitli kaynaklar için ne kadar süre bekleyeceğini belirler. “-1” değeri, SQL Server’ın varsayılan bekleme süresini kullanacağını gösterir. 

Yukarıdaki advanced bölümündeki yapılandırma, SQL Server’ın daha derin performans ve güvenlik ayarlarını içerir. Paralellik, ağ ve yedekleme gibi ayarların optimize edilmesi, SQL Server’ın performansını büyük ölçüde etkileyebilir. Yüksek veritabanı performansı ve ölçeklenebilirlik için bu ayarların doğru yapılandırılması önemlidir. 

  1. Advanced kısmındaki açıklamalardan sonra Permissions bölümünde neler olduğu ne gibi konfigürasyonlar yapıldığına değinelim.

Bu kısımda instance altında bulunan Login’lere instance bazlı bazı yetkiler verilebilir. Bu yetkiler genel kapsamlı yetkilerdir. 

Bu makalede instance properties ekranında ne gibi konfigürasyonların yapıldığını ele almış olduk.

Başka bir makalede görüşmek dileğiyle..

Onlar – ” Söz Verdiklerinde Sözünde Dururlar.” Bakara / 177

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir