11 Ocak 2009 Pazar

"Event filter with query "select * from __InstanceModificationEvent within 10 where TargetInstance isa 'Win32_Service'" could not be (re)activated in

HATA MESAJI:
"Event filter with query "select * from __InstanceModificationEvent within 10 where TargetInstance isa 'Win32_Service'" could not be (re)activated in namespace "//./root/Microsoft/SqlServer/ComputerManagement" because of error 0x80041010. Events may not be delivered through this filter until the problem is corrected."

AÇIKLAMA:
Windows Event Application Log' larında böyle bir hata görebilirsiniz.

ÇÖZÜM:
Bu hatayı almamak için, SQL Server 2005' in Servis Paketi 2' sini yüklemelisiniz. Bu servis paketini Client Tools' a da uygulamayı sakın unutmayın, yoksa bu hatayı almaya devam edersiniz.

Pending Reboot Requirement (Error)

HATA MESAJI:
"Pending Reboot Requirement (Error)

A previous installation required a reboot of the machine for changes to take effect. To proceed, restart your computer and then run SQL Server Setup again."

AÇIKLAMA:
Bir SQL Server 2005 Instance' ı kurarken "System Configuration Check" penceresinde bu hata ile karşılaşabilirsiniz.

Bu hata, özellikle önceden kurmuş olduğunuz bir SQL Server 2005 Instance' ını kaldırdıktan sonra tekrar yeni bir SQL Server 2005 Instance' ı kurarken karşınıza çıkar.

Ayrıca sunucuyu kaç kere yeniden başlatırsanız başlatın, bu hatayı almaya devam edersiniz. Yani tam saç baş yolduracak cinsten bir hata =)

ÇÖZÜM:
Bu hatadan kurtulmak için aşağıdaki adımları gerçekleştirin:

- Regedit' i açın.
- F3' kısayol tuşuna tıklayarak Find' ı açın ve tırnakları kullanmadan şu değeri aratın: "PendingFileRenameOperations".
- Muhtemelen iki değerde sonuç verecek ve bu değerlerin adı da şöyle olacak: "Pending Rename Operations"
- Bu değer içerisinde yazan: "CurrentControlSet\Control\Session Manager\PendingFileRenameOperations" bilgisini temizleyip kaydedin.

Bu adımları izlediğiniz takdirde, sunucunuzu tekrar başlatmanıza gerek kalmadan SQL Server 2005 Setup' ı tekrar çalıştırdığınızda "System Configuration Check" penceresinde bu hata ile karşılaşmayacaksınız.

"Cannot use file 'X:\tempdb.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used."

HATA MESAJI:
Cannot use file 'X:\tempdb.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used.

AÇIKLAMA:
TEMPDB veritabanını aşağıdaki koda benzer bir kod ile başka bir Storage' a taşımayı denediğinizde bu hatayı alabilirsiniz.

USE master;
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'X:\tempdb.mdf');
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'X:\templog.ldf');
GO

Bunun nedeni, "X:" sürücünüzün Cluster' daki Physical Disk Resource' unun, ilgili SQL Server Service Resource' nun Dependencies listesinde olmayışıdır.

ÇÖZÜM:
TEMPDB için kullanmayı düşündüğünüz diskin Phsycal Disk Resource' sunu ilgili SQL Server Service Resource' sunun Dependencies listesine eklemek için aşağıdaki adımları izleyin:

- Cluster Administrator' ı açın.
- SQL Server Resource' u gibi, SQL Server ile alâkalı tüm Phsycal Disk Resource' larının da SQL Server Resource' uyla aynı Cluster Group' unda olmasını sağlayın.
- SQL Server Resource' una farenin sağ tuşuyla tıklayın ve bu Resource' u "Take Offline" seçeneğiyle Offline duruma getirin.
- SQL Server Resource' una tekrar farenin sağ tuşuyla tıklayın ve Properties' i açın.
- Dependencies sekmesine tıklayın.
- SQL Server Resource' unun kullanacağı diskleri eklemek için "Modify" düğmesine tıklayın.
- SQL Server Resource' unu Bring Online seçeneği ile tekrar Online duruma getirin ve böylece artık yukarıdaki komutları kullanarak TEMPDB' nizi ilgili Phsycal Disk Resource' una taşıyabilirsiniz.

4 Ocak 2009 Pazar

İpucu: Indexed View

Indexed View' lerin, Query Optimizer tarafından uygun görüldüğü takdirde SQL Server 2005 ve üst versiyonlarının Enterprise Edition' ları tarafından otomatik olarak kullanılabileceğini biliyor muydunuz? SQL Server 2005' in diğer Edition' ları için ise, Query Optimizer' ın Indexed View' leri kullanması için "NOEXPAND" Table Hint' ini kullanmanız gerekiyor.

İpucu: DDL komutlarıyla bir nesne oluştururken...

DDL komutlarıyla (CREATE, ALTER, DROP) bir nesne oluştururken, bu nesne için bir Schema adı kullanmayı ihmal etmeyin. Eğer bir Schema adı kullanmazsanız SQL Server o nesneyi, önce bu nesneyi çağıran kullanıcının varsayılan Schema' sının altında, daha sonra da "dbo" Scheması altında arayacaktır.