Di masa lalu saya pikir saya telah menghapus indeks hipotetis menggunakan pernyataan DROP INDEX untuk indeks cluster dan pernyataan STATISTIK DROP untuk indeks non-cluster.
Saya memiliki database yang penuh dengan sisa-sisa DTA yang ingin saya bersihkan; Namun, ketika saya mencoba untuk menjatuhkan objek, saya selalu menerima pesan kesalahan yang mengatakan bahwa saya tidak dapat menjatuhkan objek "karena tidak ada atau Anda tidak memiliki izin". Saya sysadmin penuh di server jadi saya berharap memiliki hak untuk melakukan apa pun.
Saya sudah mencoba ini dengan kedua pernyataan DROP STATS dan DROP INDEX tetapi keduanya memberi saya kesalahan yang sama.
Adakah yang menghapus ini sebelumnya dan adakah tipuan yang saya lewatkan?
Tambahan
Menyodok dalam hal ini, saya hanya melihat bahwa jika saya R-Klik pada objek, baik opsi 'Script As' dan 'DELETE' diklik.
sumber
DROP INDEX
adalah sintaks yang benar untuk kedua indeks berkerumun dan tidak berkerumun.DROP STATISTICS
khusus untuk statistik yang berbeda.Jawaban:
Indeks hipotetis yang dibuat oleh Index Tuning Wizard dimulai dengan nama "hind_%" dan seharusnya tidak ada setelah penyetelan selesai; mereka semua harus dihapus. Anda bisa menjalankan skrip berikut dari SQL Server Query Analyzer untuk menghapus indeks apa pun yang mungkin ada. Anda harus masuk dengan menggunakan akun yang memiliki izin sysadmin atau db_owner, atau pemilik objek tempat statistik ini dibuat.
Sebagai contoh
Skrip di atas disediakan oleh Microsoft untuk perincian lebih lanjut Anda dapat mengunjungi tautan berikut. http://support.microsoft.com/kb/q293177
sumber
Buku daring mencakup beberapa alasan Anda mungkin tidak dapat menjatuhkan indeks.
Mungkin ada alasan lain juga.
sumber
dbcc checktable
?Ini sedikit simplistis, tetapi jika Anda selesai dengan saran DTA, coba hapus sesi tuning dari server itu melalui antarmuka DTA.
sumber