Question

Quelqu'un sait-il quels sont les index hypothétiques utilisés dans SQL Server 2000? J'ai une table avec 15+ index de ce type, mais je n'ai aucune idée de ce pour quoi ils ont été créés. Peuvent-ils ralentir les suppressions / insertions?

Était-ce utile?

La solution

Les index hypothétiques sont généralement créés lorsque vous exécutez l’assistant de réglage d’index. Ce sont des suggestions. Dans des circonstances normales, ils seront supprimés si l’expert fonctionne correctement.

Si certains sont laissés, ils peuvent causer des problèmes, voir Ce lien vous indique comment les supprimer .

Autres conseils

Je ne sais pas trop pour 2000, mais en 2005, les index hypothétiques et les objets de base de données en général sont des objets créés par DTA (Database Tuning Advisor)

.

Vous pouvez vérifier si un index est hypothétique en exécutant cette requête:

SELECT  *
FROM    sys.indexes
WHERE   is_hypothetical = 1

Si vous avez donné au conseiller en réglage de bonnes informations sur lesquelles baser sa stratégie d’indexation, alors je vous dirais de faire confiance à ses résultats, mais si vous devriez bien sûr examiner comment il les a attribués avant de lui faire confiance aveuglément. Chaque situation sera différente.

Une recherche google pour " index hypothétiques de serveur SQL " a renvoyé le article suivant comme premier résultat. Citation:

  

Les index hypothétiques et les objets de base de données en général sont simplement des objets créés par DTA (Database Tuning Advisor)

Les index hypothétiques sont ceux générés par l’Assistant Paramétrage de la base de données. De manière générale, avoir trop d'index n'est pas une bonne idée et vous devriez examiner vos plans de requête pour supprimer ceux qui ne sont pas utilisés.

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.

Ils pourraient également être créés manuellement avec des documents non documentés WITH STATISTICS_ONLY:

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 < <;> ft

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top