powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблема с использованием индекса
10 сообщений из 35, страница 2 из 2
Проблема с использованием индекса
    #34375645
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rubberмолви ещё раз чего нужно видеть ?
условные 1000, 1001 и 1002 ?
Ну да. в данном случае - да. Но нужен именно неизвестный диапазон (может и большой), поэтому IN не подходит, а BETWEEN тоже индекс не пользует - я проверил :(
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34375669
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
а BETWEEN тоже индекс не пользует - я проверил :(
Селективность условия примерно какая? Если по-русски, то какой процент записей из таблицы должен отобраться? CREATE STATISTICS пробовал?
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34375684
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун YuRock
а BETWEEN тоже индекс не пользует - я проверил :(
Селективность условия примерно какая? Если по-русски, то какой процент записей из таблицы должен отобраться? CREATE STATISTICS пробовал?

Процент может быть любым. Абсолютно.

На счет CREATE STATISTICS - можно поподробнее? Мне казалось, что статистику неуникального индекса (а он у меня такой) сервер ведет сам...
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34375931
Rubber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select *
from DocLimits
where LowLimit <= 1000 and HighLimit = 1000

цепляет индекс ?
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34376720
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rubberselect *
from DocLimits where LowLimit <= 1000 and High Limit = 1000

цепляет индекс ?

Кхгм... :)
Ты наверное имел в виду
Код: plaintext
from DocLimits where LowLimit <=  1000  and LowLimit =  1000 

Да, такой цепляет.
И такой тоже цепляет:
Код: plaintext
from DocLimits where LowLimit <=  1000  and LowLimit <  2000 

Но как только условиях появляются противоположные знаки (">" и "<", не важно, есть ли "=") - сразу индекс не работает.

Пробовал писать так:
Код: plaintext
from DocLimits (Index I_DocLimits_HiLo) where LowLimit >=  1000  and LowLimit <=  1500 

Но оптимизатор игнорит это указание :(
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34376845
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock wrote:

> Но оптимизатор игнорит это указание :(

Оптимизатор, как минимум, не глупее тебя.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34376870
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000Оптимизатор, как минимум, не глупее тебя.
Спасибо за очередной комплемент! У тебя работа такая - комплементы на форуме раздавать? Кроме них я других постов от тебя еще не видел. И даже не знаю, хочу ли видеть в будущем.
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34376872
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock Александр Гoлдун
Селективность условия примерно какая? Если по-русски, то какой процент записей из таблицы должен отобраться? CREATE STATISTICS пробовал?

Процент может быть любым. Абсолютно.

Так может стоит внимательнее почитать в документации про принципы работы оптимайзера? Индекс берется только тогда, когда он действительно может быть использован эффективно. Эффективность индексного скана по сравнению с фулсканом даже при четверти отбираемых записей уже может быть сомнительной. BETWEEN нормально цепляет индексы там, где это нужно. Разумеется, бывают исключения, в том числе и банальние ошибки в оптимайзере, от которых никто не застрахован. Надо детально анализировать каждый случай. А по такому выхолощенному примеру никто ничего конкретного не подскажет. Только общие советы: смотри план запроса, анализируй, проверяй статистику и т.п. Если абсолютно уверен в том, что там должен использоваться индекс, тогда попробуй приложить более свежий EBF. Если не помогает и уверен, что это ошибка, делай воспроизводимый пример и выкладывай case.
YuRock
На счет CREATE STATISTICS - можно поподробнее? Мне казалось, что статистику неуникального индекса (а он у меня такой) сервер ведет сам...
В хелпах достаточно подробно. Иногда случаются перекосы в статистике, из-за чего оптимайзер некорректно оценивает ту самую селективность, о которой я спрашивал.
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34376962
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ГoлдунТак может стоит внимательнее почитать в документации про принципы работы оптимайзера? Индекс берется только тогда, когда он действительно может быть использован эффективно. Эффективность индексного скана по сравнению с фулсканом даже при четверти отбираемых записей уже может быть сомнительной.
Да какая ж четверть?
select * from DocLimits (Index I_DocLimits_HiLo) where LowLimit >= 1000 and LowLimit <= 1005
выбирает 5 записей. А всего в таблице - их 16 миллионов!

В хелпах достаточно подробно. Иногда случаются перекосы в статистике, из-за чего оптимайзер некорректно оценивает ту самую селективность, о которой я спрашивал.
Сделал только что CREATE STATISTICS DocLimits. Ничего не изменилось :(

Спасибо за советы.
...
Рейтинг: 0 / 0
Проблема с использованием индекса
    #34377162
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Да какая ж четверть?
select * from DocLimits (Index I_DocLimits_HiLo) where LowLimit >= 1000 and LowLimit <= 1005
выбирает 5 записей. А всего в таблице - их 16 миллионов!

Мы должны вытрясать эту информацию с тебя? Могу только процитировать слова коллеги:
Dim2000
Проблема не воспроизводится.

На аналогичных запросах прекрасно подхватывает индекс, когда нужно. Хотя бы метаданные привел бы и получаемый план запроса, а в идеале - вообще сделать так, чтоб другие могли воспроизвести ситуацию. Тогда можно ожидать реальной помощи. Если нет, то это гадание на кофейной гуще. Все возможные советы уже посоветовали. Копай.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблема с использованием индекса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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