Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Rubberмолви ещё раз чего нужно видеть ? условные 1000, 1001 и 1002 ? Ну да. в данном случае - да. Но нужен именно неизвестный диапазон (может и большой), поэтому IN не подходит, а BETWEEN тоже индекс не пользует - я проверил :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:54 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock а BETWEEN тоже индекс не пользует - я проверил :( Селективность условия примерно какая? Если по-русски, то какой процент записей из таблицы должен отобраться? CREATE STATISTICS пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 19:01 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Александр Гoлдун YuRock а BETWEEN тоже индекс не пользует - я проверил :( Селективность условия примерно какая? Если по-русски, то какой процент записей из таблицы должен отобраться? CREATE STATISTICS пробовал? Процент может быть любым. Абсолютно. На счет CREATE STATISTICS - можно поподробнее? Мне казалось, что статистику неуникального индекса (а он у меня такой) сервер ведет сам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 19:07 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
select * from DocLimits where LowLimit <= 1000 and HighLimit = 1000 цепляет индекс ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 21:21 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Rubberselect * from DocLimits where LowLimit <= 1000 and High Limit = 1000 цепляет индекс ? Кхгм... :) Ты наверное имел в виду Код: plaintext Да, такой цепляет. И такой тоже цепляет: Код: plaintext Но как только условиях появляются противоположные знаки (">" и "<", не важно, есть ли "=") - сразу индекс не работает. Пробовал писать так: Код: plaintext Но оптимизатор игнорит это указание :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 10:47 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock wrote: > Но оптимизатор игнорит это указание :( Оптимизатор, как минимум, не глупее тебя. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 11:25 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Dim2000Оптимизатор, как минимум, не глупее тебя. Спасибо за очередной комплемент! У тебя работа такая - комплементы на форуме раздавать? Кроме них я других постов от тебя еще не видел. И даже не знаю, хочу ли видеть в будущем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 11:34 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock Александр Гoлдун Селективность условия примерно какая? Если по-русски, то какой процент записей из таблицы должен отобраться? CREATE STATISTICS пробовал? Процент может быть любым. Абсолютно. Так может стоит внимательнее почитать в документации про принципы работы оптимайзера? Индекс берется только тогда, когда он действительно может быть использован эффективно. Эффективность индексного скана по сравнению с фулсканом даже при четверти отбираемых записей уже может быть сомнительной. BETWEEN нормально цепляет индексы там, где это нужно. Разумеется, бывают исключения, в том числе и банальние ошибки в оптимайзере, от которых никто не застрахован. Надо детально анализировать каждый случай. А по такому выхолощенному примеру никто ничего конкретного не подскажет. Только общие советы: смотри план запроса, анализируй, проверяй статистику и т.п. Если абсолютно уверен в том, что там должен использоваться индекс, тогда попробуй приложить более свежий EBF. Если не помогает и уверен, что это ошибка, делай воспроизводимый пример и выкладывай case. YuRock На счет CREATE STATISTICS - можно поподробнее? Мне казалось, что статистику неуникального индекса (а он у меня такой) сервер ведет сам... В хелпах достаточно подробно. Иногда случаются перекосы в статистике, из-за чего оптимайзер некорректно оценивает ту самую селективность, о которой я спрашивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 11:34 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Александр ГoлдунТак может стоит внимательнее почитать в документации про принципы работы оптимайзера? Индекс берется только тогда, когда он действительно может быть использован эффективно. Эффективность индексного скана по сравнению с фулсканом даже при четверти отбираемых записей уже может быть сомнительной. Да какая ж четверть? select * from DocLimits (Index I_DocLimits_HiLo) where LowLimit >= 1000 and LowLimit <= 1005 выбирает 5 записей. А всего в таблице - их 16 миллионов! В хелпах достаточно подробно. Иногда случаются перекосы в статистике, из-за чего оптимайзер некорректно оценивает ту самую селективность, о которой я спрашивал. Сделал только что CREATE STATISTICS DocLimits. Ничего не изменилось :( Спасибо за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 11:55 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock Да какая ж четверть? select * from DocLimits (Index I_DocLimits_HiLo) where LowLimit >= 1000 and LowLimit <= 1005 выбирает 5 записей. А всего в таблице - их 16 миллионов! Мы должны вытрясать эту информацию с тебя? Могу только процитировать слова коллеги: Dim2000 Проблема не воспроизводится. На аналогичных запросах прекрасно подхватывает индекс, когда нужно. Хотя бы метаданные привел бы и получаемый план запроса, а в идеале - вообще сделать так, чтоб другие могли воспроизвести ситуацию. Тогда можно ожидать реальной помощи. Если нет, то это гадание на кофейной гуще. Все возможные советы уже посоветовали. Копай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=55&gotonew=1&tid=2012212]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 406ms |

| 0 / 0 |
