Вопрос

Кто-нибудь знает, для чего гипотетические индексы используются в sql server 2000?У меня есть таблица с более чем 15 такими индексами, но я понятия не имею, для чего они были созданы.Могут ли они замедлить удаление / вставку?

Это было полезно?

Решение

гипотетические индексы обычно создаются при запуске мастера настройки индекса и являются рекомендациями, при обычных обстоятельствах они будут удалены, если мастер работает нормально.

Если некоторые из них остались поблизости, они могут вызвать некоторые проблемы, см. по этой ссылке вы найдете способы их удаления.

Другие советы

Не уверен насчет 2000 года, но в 2005 году гипотетические индексы и объекты базы данных в целом были объектами, созданными DTA (советник по настройке базы данных)

Вы можете проверить, является ли индекс гипотетическим, выполнив этот запрос:

SELECT  *
FROM    sys.indexes
WHERE   is_hypothetical = 1

Если вы предоставили советнику по настройке хорошую информацию, на которой основывается его стратегия индексации, то я бы посоветовал в целом доверять его результатам, но, конечно, вам следует изучить, как он их распределил, прежде чем слепо доверять ему.Каждая ситуация будет отличаться от другой.

Поиск в Google по запросу "гипотетические индексы sql server" вернул следующая статья как первый результат.Цитата:

Гипотетические индексы и объекты базы данных в целом - это просто объекты, созданные DTA (Database Tuning Advisor).

Гипотетические индексы - это те, которые генерируются советником по настройке базы данных.Вообще говоря, иметь слишком много индексов - не лучшая идея, и вам следует изучить свои планы запросов, чтобы сократить те, которые не используются.

От системные индексы:

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.

Они также могут быть созданы вручную с недокументированными 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');

дб<> демо-версия скрипки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top