Arşiv

Posts Tagged ‘SQL Server Optimizasyon Teknikleri’

SQL Server – Optimizasyon Teknikleri

28 Mayıs 2011 Yorum bırakın

Görev önceliği

My Computer > Properties > Advanced > Performance > Settings  sayfasında Processor scheduling kısmında Adjust for best performance of background services seçilmelidir.

  Enterprise Manager’da sunucu adı > Properties > Processor sayfasında Boot SQL Server Priority işeretlenmelidir.

Boost priority çoğu zaman sistemi önemli ölçüde hızlandırır fakat sunucuda sadece bir işlemci mevcutsa SQL’in öncelikli çalışması ağ iletişimini aksatabilir. Tek işlemcili sunucularda istemciler connection broken hatası almaya başlarlarsa boost priority kapatılabilir.

Hafıza

SQL Server Standard Edition en fazla 2GB hafıza kullanabilir. 2GB’ın üstündeki hafızayı kullanabilmek için Enterprise Edition gereklidir. Sql Server’ın edition’ını öğrenmek için Query Analyzer’da SELECT ServerProperty(‘Edition’) komutu çalıştırılır. Windows’un edition’ı start menüsünün solunda yazılıdır.

SQL Server’ın kullanabileceği hafıza miktarı

SQL Server 2000 Standard Ed.

SQL Server 2005
Workgroup Ed.

SQL Server 2000
Enterprise Ed.

Sql Server 2005
Standart Ed.

Sql Server 2005
Enterprise Ed.

Windows 2000 Server

2 GB

4 GB

Windows 2000 Advanced Server

2 GB

8 GB

Windows 2000 Data Center

2 GB

64 GB

Windows 2003 Standard Ed.

2 GB

4 GB

Windows 2003 Enterprise Ed.

2 GB

32 GB

Windows 2003 Enterprise Ed. SP1

2 GB

64 GB

Windows 2003 Datacenter Ed.

2 GB

64 GB

Windows 2003 Datacenter Ed. SP1

2 GB

128 GB

Windows 2003 Standard Ed. x64

2 GB

32 GB

Windows 2003 Enterprise Ed. x64

2 GB

1 TB
(Yaklaşık sınırsız)

Windows 2003 Datacenter Ed. x64

2 GB

1 TB
(Yaklaşık sınırsız)

İşletim sistemi Windows 2000 Advanced Server, Windows 2000 Datacenter veya Windows Server 2003 ise:

Hafıza 3  ile 4 GB arasında ise (4 GB dahil) boot.ini dosyasına /3GB parametresi eklenmelidir.

Hafıza 4 ile 16 GB arasında ise (16 GB dahil) boot.ini dosyasına /3GB /PAE parametreleri eklenmelidir.

Hafıza > 16 GB ise boot.ini dosyasına sadece /PAE parametresi eklenmelidir.

/3GB ve /PAE seçenekleri, sadece yukarıdaki durumlarda boot.ini’de bulunmalıdır. Diğer durumlarda bu seçenekler boot.ini’den çıkarılmalıdır.

 

Örnek boot.ini dosyası:

 
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT = "Windows 2000 Advanced Server" /fastdetect /3GB

Eğer sunucuda SQL Server Enterprise Edition yüklü ise ve hafıza >= 4 GB ise:

       • Query Analyzer’da sp_configure ‘show advanced options’, 1 komutu çalıştırılır.

       • Query Analyzer’da sp_configure ‘awe enabled’, 1 komutu çalıştırılır.

       • Start > Settings > Control Panel > Administrative Tools > Local Security Policy programında Security Settings > Local Policies > User Rights Assignment > Lock Pages in memory kısmına Sql servisini çalıştıran kullanıcını adı eklenir. Sql servisini çalıştıran kullanıcıyı bulmak için Start > Setting > Control Panel > Administrative Tools > Services > MSSQLServer’ı çift tıklayıp Logon sayfasına bakabilirsiniz.

My Computer > Properties > Advanced > Performance > Settings sayfasında virtual memory’nin boyu fiziksel hafıza kadar yapılmalıdır (initial size ve maximum size aynı olmalıdır).

Enterprise Manager’da sunucu adı > Properties > Memory sayfasında aşağıdaki değişiklikler yapılmalıdır:

       • Mimimum query memory (KB): 1536

 

• Reserve physical memory: AWE kullanılmıyorsa, işaretlenmeli. (Ana makine SQL dışındaki uygulamalara da ev sahipliği yapıyorsa veya AWE kullanılıyorsa, “reserve physical memory” işaretlenmemeli)

• Use a fixed memory size (MB): Fiziksel hafızanın yaklaşık %90’ı (Use a fixed memory size kısmına yazılan sayı ile fiziksel hafıza arasındaki farkın 128MB’dan az olmaması tavsiye edilir).

 

Eğer “reserve physical memory” işaretli ise veya AWE kullanılıyorsa, hafıza ile ilgili tüm ayarlar yapıldıktan sonra aşağıdaki kontrol yapılır.

(1)  Sql hizmeti durdurulup yeniden başlatılır.

(2)   Enterprise Manager’da sunucu adı > Management > Sql Server Logs > Current açılır.

(3)   Listede “Warning: Cannot set working set size” mesajı olup olmadığı incelenir.

(4)   Bu mesaj mevcut ise “Use a fixed memory size” kısmındaki sayı azaltılır, durumun düzelip düzelmediğini anlamak için birinci adıma dönülür.

 

Not: Sunucuda Sql Server Standard Edition yüklü olduğu halde 2GB’dan fazla fiziksel hafıza varsa, fiziksel hafıza 2GB’mış gibi işlem yapılır.

Disk

Sunucuya en az iki disk takılı ise data dosyaları ve transaction log dosyaları iki farklı fiziksel diske yerleştirilmelidir. Üçüncü bir disk varsa, tempdb bu diske taşınmalıdır. Fakat aynı fiziksel disk üzerinde farklı mantıksal diskler kullanmak performansı iyileştirmez.

Sunucuda RAID kartı varsa, optimum performans için tüm diskler RAID-5 ile birleştirilmeli veya iki RAID-0 seti RAID-1 ile aynalanmalıdır (RAID 0+1).

Eğer RAID kartının üzerinde pil mevcut ise kartın delayed write özelliği aktif hale getirilmelidir.

İşlemci

İşlemcinin HyperThreading özelliği varsa BIOS ayarlarında bu özellik aktif hale getirilmelidir. HyperThreading’den optimum performans alabilmek için SQL’in en yeni yaması yüklenmelidir (en az SP3a).

Enterprise Manager’da sunucu adı > Properties > Processor sayfasında use all available processors seçilmelidir.

Dört veya daha fazla CPU’lu sistemlerde, Enterprise Manager’da sunucu adı > Properties > Processor sayfasında Use Windows NT fibers seçeneği işaretlenmelidir.

Masaüstü

Ekran koruyucu olarak blank screen seçilmeli, duvar kağıdı kaldırılmalıdır.

Veri tabanı

Enterprise Manager’da sunucu adı > Databases > Winner Veri tabanı adı > Properties > Options sayfasında auto create statistics ve auto update statistics işaretlenmelidir. Eğer gün içinde transaction log yedeklenmiyorsa Recovery Model=Simple yapılmalıdır.

Diğer

Eğer toplam hafıza çok düşükse ve ekran kartı RAM hafızasını kullanıyorsa, ekran kartının kullandığı hafızayı azaltmak sistemi hızlandırabilir. Bu seçenek BIOS ayarlarından değiştirilir. Award Bios’larda bu seçenek Integrated Peripherals sayfasında System Share Memory Size’dır. Bazı Bios üreticileri bu seçeneği video memory olarak adlandırmaktadır.

Analysis Services için tavsiyeler

Aşağıdaki işlemler, sadece üzerinde Analysis Services çalışan sunucular için geçerlidir.

(1) Sunucuda gerçek-zamanlı virüs taraması yapan bir antivirüs programı varsa, antivirüs programının Analysis Services’ın data ve temp klasörlerini atlaması sağlanmalıdır. Norton Antivirus’de bu seçenek OPTIONS sayfasındaki EXCLUSIONS kısmındadır. Analysis Services’ın data ve temp klasörünü bulmak için Analysis Manager’da sunucu adını sağ tıklayıp properties seçeneğini seçebilirsiniz.

(2) Indexing servisinin startup şekli disabled yapılmalıdır.