Pregunta

¿Alguien sabe para qué índices hipotéticos se utilizan en SQL Server 2000? Tengo una tabla con más de 15 índices, pero no tengo idea de para qué fueron creados. ¿Pueden ralentizar las eliminaciones / inserciones?

¿Fue útil?

Solución

los índices hipotéticos generalmente se crean cuando ejecuta el asistente de ajuste de índice, y son sugerencias, en circunstancias normales se eliminarán si el asistente se ejecuta correctamente.

Si quedan algunos, pueden causar algunos problemas, consulte este enlace para ver formas de eliminarlos .

Otros consejos

No estoy seguro sobre 2000, pero en 2005 los índices hipotéticos y los objetos de base de datos en general son objetos creados por DTA (Asesor de ajuste de base de datos)

Puede verificar si un índice es hipotético ejecutando esta consulta:

SELECT  *
FROM    sys.indexes
WHERE   is_hypothetical = 1

Si le ha dado al asesor de ajuste buena información sobre la cual basar su estrategia de indexación, entonces diría que generalmente confía en sus resultados, pero si por supuesto debe examinar cómo los ha asignado antes de confiar ciegamente en ellos. Cada situación será diferente.

Una búsqueda en Google de " índices hipotéticos del servidor sql " devolvió el siguiente artículo como primer resultado. Cita:

  

Los índices hipotéticos y los objetos de base de datos en general son simplemente objetos creados por DTA (Asesor de ajuste de base de datos)

Los índices hipotéticos son aquellos generados por el Asesor de ajuste de base de datos. En términos generales, tener demasiados índices no es una buena idea y debe examinar sus planes de consulta para podar los que no se están utilizando.

De sys.indexes :

is_hypothetical     bit     

1 = Index is hypothetical and cannot be used directly as a data access path. 
    Hypothetical indexes hold column-level statistics.

0 = Index is not hypothetical.

También podrían crearse manualmente con WITH STATISTICS_ONLY:

indocumentado
CREATE TABLE tab(id INT PRIMARY KEY, i INT);

CREATE INDEX MyHypIndex ON tab(i) WITH STATISTICS_ONLY = 0;
/* 0 - withoud statistics -1 - generate statistics */

SELECT name, is_hypothetical
FROM sys.indexes
WHERE object_id = OBJECT_ID('tab');

db < > f!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top