En el pasado, pensé que había eliminado índices hipotéticos usando una instrucción DROP INDEX para índices agrupados y la instrucción DROP STATISTICS para índices no agrupados.
Tengo una base de datos que está llena de restos de DTA que me gustaría limpiar; sin embargo, cuando trato de soltar el objeto siempre recibo un error que me dice que no puedo soltar el objeto "porque no existe o no tienes permiso". Soy un administrador de sistemas completo en el servidor, por lo que esperaría tener derechos para hacer cualquier cosa.
He intentado esto con las declaraciones DROP STATS y DROP INDEX pero ambas me dan el mismo error.
¿Alguien ha eliminado estos antes y hay un truco que me falta?
Apéndice
Escudriñando esto, me di cuenta de que si hago clic con el botón derecho en el objeto, las opciones 'Script As' y 'DELETE' están atenuadas.
fuente
DROP INDEX
es la sintaxis correcta para los índices agrupados y no agrupados.DROP STATISTICS
es específicamente para estadísticas que son diferentes.Respuestas:
Los índices hipotéticos creados por el Asistente de ajuste de índice comienzan con un nombre de "hind_%" y no deberían existir una vez que haya finalizado el ajuste; todos deberían ser eliminados. Puede ejecutar el siguiente script desde el Analizador de consultas de SQL Server para eliminar los índices que puedan existir. Debe iniciar sesión utilizando una cuenta que tenga permisos sysadmin o db_owner, o que sea el propietario del objeto en el que se crearon estas estadísticas.
Por ejemplo
Microsoft proporciona el script anterior para obtener más detalles que puede visitar en el siguiente enlace. http://support.microsoft.com/kb/q293177
fuente
Los libros en línea incluyen varias razones por las que es posible que no pueda eliminar un índice.
Puede haber otras razones, también.
fuente
dbcc checktable
es necesario correr ?Esto es un poco simplista, pero si ha terminado con las sugerencias de DTA, intente eliminar las sesiones de ajuste de ese servidor a través de la interfaz de DTA.
fuente