SQL Sunucunuzun performansını arttırmak için aşağıda 17 tavsiye bulacaksınız.
1. Yedeklemenizi önce yerel diske yapıp, oradan teyp’teki yedekleme dosyalarına kopyalayın
Yedekleme yaparken, bazı SQL Sunucu komutları çalışamaz. Örneğin; yedekleme sırasında ALTER DATABASE komutu ADD FILE veya REMOVE FILE opsiyonları, CREATE INDEX komutu çalışamaz. SELECT INTO yapılamaz vs. Bu nedenle, yedekleme performansını arttırmak için, yedeklemenizi yerel diske yapıp, oradan teyp’e alın.
2. Mümkün olduğunca nonlogged bulk copy kullanın
Nonlogged bulk copy, log’lanmış olanlardan daha hızlıdır. Ama aşağıdaki şartları sağlamanız gerekir.
@nbsp; @nbsp;1. Veri tabanı özelliği ‘select into/bulkcopy’ TRUE olarak işaretlenmiş olmalıdır.
@nbsp; @nbsp;2. Hedef tablo kopyalanmamış olmalıdır.
@nbsp; @nbsp;3. TABLOCK belirtilmiş olmalıdır.
@nbsp; @nbsp;4. Hedef tablonun indexleri olmamalıdır. Eğer varsa, bulk kopyalama başlayınca, boş olmalıdır.
3. Mümkün olduğunca native mod kullanın
chracter mod ile karşılaştırıldığında verim daha yüksektir.
4. SQL Sunucuya veri yüklemek için bcp ya da DTS yerine BULK INSERT konutunu kullanın
Text file dönüşümlerinde, BULK INSERT komutu bcp ya da veri pompalamadan daha hızlıdır. Ama, BULK INSERT konutu SQL Sunucudan veri dosyasına bulk veri kopyalamaz.
5. Bir SQL Sunucu tablosundan text dosyaya çevirmek üzere verileri aktarırken DTS yerine bcp kullanın.
Bcp, DTS’den çok daha hızlıdır. Bu nedenle mümkün olduğunca bcp kullanmalısınız.
6. Transaction’ları mümkün olduğunca kısa tutun
Böylece ölü noktalar-kilitler oluşmaz.
7. Çok büyük tabloları güncel ve arşiv şeklinde partisyonlara ayırmayı düşünün
Böylece komutları yürütürken performansınız artacaktır.
8. Veri tabanı tablolarınızı 3.normal form’a normalize edin
Tablolar, geçişil bağımlılıklar taşımıyorsa, 3.normal formdadır (3NF). Genellikle 3.normal form’a normalize edilmelidirler.
9. Veritabanınızın tablolarının denormalization işleminde 4 ve 5.ci yerine 3. normal formu tercih edin.
4. ve 5. normal formlara normalization işlemi performansta bir azalmaya neden olur. Bu azalmayı önlemek için bazen veri tabanı tablolarını denormalize etmek gerekir.
10. Tabloların kolonlarını mümkün olduğunca dar yaratın
Bu da tablolarınızın büyüklüğünü azaltmanıza yardım eder. Tabloların büyüklüğü azaldıkça, sorgu ve bakım işlemlerinizin (yedekleme, geri alma gibi) performansı artacaktır.
11. Mümkün olduğunca, text/ntext yerine varchar/nvarchar kolonlarını kullanın.
Çünkü, SQL Sunucu Text/Image sayfalarındaki text/ntext kolonlarını diğer verilerden ayrı bir yere, veri sayfalarında saklar. Bu nedenle de bunları işlemek daha çok zaman alacaktır.
12. Veriyi unicode olarak saklamak zorunda değilseniz, nchar/nvarchar yerine char/varchar kullanın.
Böylece tabloların boyutunu azaltabilirsiniz. Bu da sorgulamalarınızda ve bazı bakım işlemlerinde (yedekleme, geri yükleme vs) performansı arttıracaktır.
13. Kolon genişliği 4 byte ve altı ise, varchar/nvarchar yerine char/nchar tipi veri kullanın.
char tip veriler sabit-uzunluklu (fixed-length) tip verilerdir. varchar ise değişken-uzunluklu (variable-length) verilerdir.
Bu nedenle, char tip veri kullandığınızda, delete/insert veya deferred update yerine in-place update şansını arttırmış oluyorsunuz. In-place update en verimli değişiklik yöntemidir. Kullanıldığında, fiziksel olarak bulunduğu yerde değişir. Satırın boyutu değiştiği zaman, delete/insert değiştirme yöntemi kullanılabilir. Ama performans düşüklüğüne neden olur.
14. Tüm tablolardaki satırları silmek gerekiyorsa, DELETE komutu yerine TRUNCATE TABLE kullanın
Tüm tabloların satırlarını TRUNCATE TABLE silmek, tek tek satırları loglamadığı için en hızlı yoldur.
15. Eğer default olarak gelen Dictionary sort yerine Binary sort kullanırsanız, sorting işlem hızını % 20 kadar arttırabilirsiniz.
Binary sıralama en basit ve hızlı sıralama sistemidir. Ama büyük-küçük harf hassasiyeti olmadığından daha az kullanılır.
16. Enterprise Manager ile, uzaktaki çok büyük veri tabanına ulaşmak için düşük hızlı bağlantı kullanmayın.
Çünkü Enterprise Manager kullanmak kaynak açısından pahalıdır. Böyle durumlarda, daha öncden kaydedilmiş prosedürleri ya da T-SQL komutlarını kullanın.
17. SQL Sunucunuzu, primary ya da yedek domain controller üstüne değil, sunucu makina içine tek başına kurun.
Çünkü domain controller’ın fazladan masrafları vardır. Sunucu makinanın tüm gücünü kullanabilmek için, SQL Sunucunuzu, makinanın içine tek başına kurun.