Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / когда не работает индекс? / 7 сообщений из 7, страница 1 из 1
23.02.2019, 14:57
    #39778262
Michail A.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
Добрый день.

Исследую вопрос - когда не работает индекс?

Набросал несколько пунктов:

1) искомые данные включены в индекс
2) плотность записей приближается к 1 (низкая селективность запроса)
3) Статистика содержит устаревшие данные.

Подскажите, пож-та, какие могут быть ещё варианты?
...
Рейтинг: 0 / 0
23.02.2019, 15:10
    #39778266
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
Michail A.Подскажите, пож-та, какие могут быть ещё варианты?4) Запрещено использовать хинтом.
5) Скан дешевле, чем использовапние индкса (например, данных не больше, чем на страницу)
6) из за использования инедкса другие части запроса становятся слишком дорогими (например, приходится использовать лукапы)
...
Рейтинг: 0 / 0
23.02.2019, 23:01
    #39778352
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
Michail A.Подскажите, пож-та, какие могут быть ещё варианты?Блажь оптимизатора. Ему "показалось", что индекс тут бесполезен.
...
Рейтинг: 0 / 0
24.02.2019, 12:12
    #39778408
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
Michail A.,

в пункте 1 у вас НЕ пропущено?
...
Рейтинг: 0 / 0
24.02.2019, 12:43
    #39778417
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
Michail A.,

дано: индекс по A, B, C

вариант 1:
запрос по D (не в индексе) - индекс не работает

вариант 2:
запрос по B (в индексе)
как думаете, индекс работает?


а если два индекса: по A, B и по B, C?
...
Рейтинг: 0 / 0
24.02.2019, 12:53
    #39778420
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
Michail A.Исследую вопрос - когда не работает индекс?

Набросал несколько пунктов:

1) искомые данные включены в индекс
2) плотность записей приближается к 1 (низкая селективность запроса)
3) Статистика содержит устаревшие данные.Индекс не работает, когда оптимизатор считает его использование невыгодным.

Перечисленные критерии, кроме первого (с учетом поправки skyANA ), не являются препяствием для использования индекса.
...
Рейтинг: 0 / 0
28.02.2019, 04:19
    #39780161
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
когда не работает индекс?
invmMichail A.Исследую вопрос - когда не работает индекс?

Набросал несколько пунктов:

1) искомые данные включены в индекс
2) плотность записей приближается к 1 (низкая селективность запроса)
3) Статистика содержит устаревшие данные.Индекс не работает, когда оптимизатор считает его использование невыгодным.

Перечисленные критерии, кроме первого (с учетом поправки skyANA ), не являются препяствием для использования индекса.Да разве? Первое тоже не является препяствием для использования.
Код: sql
1.
2.
3.
CREATE TABLE A(C1 INT IDENTITY(1,1) PRIMARY KEY, C2 int, C3 INT)
CREATE INDEX ix1 ON A(C2)
SELECT C1 FROM A WITH(INDEX(ix1)) WHERE C3 = 1



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

Экзотическими случаями будут фильтрованные, выключенные и т.д. индексы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / когда не работает индекс? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]