Merhaba,
Aslına bakarsanız bu çok ilginç bir konu, çünkü insanlar SQL Server 2000' den SQL Server 2005' e geçiş yaptıklarında sistemlerinin daha hızlı, verimli ve ölçeklenebilir çalışacağını umuyorken bir de bakıyorlar ki SQL Server' larının performansı SQL Server 2000' den çok daha kötü.
Fakat işin aslı öyle değil tabii ki. Yükseltme işlemini gerçekleştirdikten sonra yapmanız gereken bazı bakım ayarları var. Bunları yapmanız gerekiyor.
Yapılması gereken bu bakımları aşağıda listeliyorum:
1- SQL Server için kullanılabilir olan en son Servis Paketini yüklediğinizden emin olun. Tabii eğer bu servis paketini yüklemenizde bir sakınca yoksa. Meselâ üçüncü parti bir uygulama kullanıyor olabilirsiniz ve uygulama geliştiriciniz, uygulamanın SQL Server' ın bu servis paketini desteklemediğini ve bu servis paketini yüklememeniz gerektiğini söyleyebilir. Bunugözönünde bulundurun.
2- "External Defragmentation" yapın. Başka bir anlamda söylemek gerekirse, Windows Disk Birleştirici (veya Diskeeper gibi üçüncü parti bir yazılım da olabilir), kullanarak dosyalarınızı birleştirin. Performans açısından önemli bir adım. Bu uygulamayı gerçekleştirirken, SQL Server servisinizin çalışmadığından emin olun. Çünkü Windows Disk Birleştirici açık olan dosyalara işlem uygulayamıyor. Eğer SQL Server servisiniz çalışıyorsa, veritabanı dosyaları için de işlem yapılamaz. Bu birleştirme işlemini iş saatleri dışındayken uygulamanızı öneririm.
3- Eğer bir engel yoksa kullanıcı veritabanlarınızın Compatibility Level' ini* 90' yapın. (Database\Properties).
Not: Konuyla ilgili aşağıdaki açıklamayı kesinlikle okuyunuz. Compatibility Level' ı 90 olan bir veritabanını, SQL Server 2000' de çalıştıramazsınız.
4- Veritabanında varolan "Index" leri yeniden yapılandırın (Rebuild)
5- Kullanıcı veritabanlarınızdaki istatistikleri güncelleyin. (sp_updatestats)
6- Veritabanı ayarlarınıza bakıp "Auto Update Statistics" ayarının etkin olduğundan emin olun. Eğer bu ayarın sisteminizde performans kaybına neden olacağından kuşkularınız varsa, "Auto Update Statistics Asynchronously" seçeneğine göz atmanızı tavsiye ederim. SQL Server 2005 ile gelen yeni bir ayardır. Yerine göre çok işinize yarayabilir.
7- SQL Server 2005' in sorgular için kullandığı Çalıştırma Planı (Execution Plan), SQL Server 2000' in sorgular için kullandığı Çalıştırma Plan' ından daha az optimaldir.
Meselâ şu örneğe bakın:
SELECT * FROM Person.Contact
WHERE (LastName LIKE @para1) AND (LastName > @para2)
SQL Server 2005' te Çalıştırma Planı tablolarda arama yapmak için karşılaştırma operatörlerini kullanır (=, <, > gibi...).
SQL Server 2000' de ise Çalıştırma Planı tabloları taramak için LIKE operatörünü kullanacaktır. Karşılaştırma operatörü, LIKE operatöründen daha fazla kayıt getireceği için performans daha düşük olacaktır.
Microsoft bu sorunu çözmek için bir FIX yayınladı. Bu FIX de 4. Cumulative Güncellemesinin içerisinde bulunuyor. Bu güncellemeye ulaşmak için buraya tıklayabilirsiniz.
* Compatibility Level, SQL Server veritabanının SQL Server' ın hangi versiyonuyla uyumlu olduğunu gösterir. 90 sayısı SQL Server 2005' i, 80 sayısı SQL Server 2000'i 70 sayısı SQL Server 7.0' ı temsil eder.
Ekrem Önsoy
Hiç yorum yok:
Yorum Gönder