powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация запроса с выражением in
58 сообщений из 58, показаны все 3 страниц
Оптимизация запроса с выражением in
    #38672998
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно оптимизировать запросы с выражением "in" вида:
Код: sql
1.
select * from table where field1 in (:value11,:value12) and field2 = :value2 


в случае, если по полю field1 есть индекс, но он не подхватывается из-за использования "in"?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673015
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Interloper!
You wrote on 18 июня 2014 г. 14:26:58:

Interloper> по полю field1 есть индекс, но он не подхватывается
> из-за использования "in"?
если бы я не был так хорошо воспитан, я сказал бы "не песди".

но поскольку это таки не так, то я позволю себе поинтересоваться
версией сервера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673072
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

1.5.
Ты хочешь сказать, что in никогда не влияет на построение плана??
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673084
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

влияет. in преобразуется в ORы. Не помню как там в 1.5 было, но ЕМНИП подхватывается или не подхватывается индекс при in зависит от селективности и количества элементов в in.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673092
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Мне приходилось вместо in явно использовать OR, и тогда индекс подхватывается. Это нормальная техника оптимизации или можно еще как-то?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673095
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperМне приходилось вместо in явно использовать OR, и тогда индекс подхватывается
не верю (с)
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673101
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperМне приходилось вместо in явно использовать OR, и тогда индекс
подхватывается. Это нормальная техника оптимизации или можно еще как-то?
Это бред твоего воспалённого мозга. IN "унутре" разворачивается в пачку OR, так что между
ними не существует разницы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673146
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Бред несешь ты. Если в условии отбора есть фильтрация по другим полям, то автоматический разворот в OR не поможет.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673153
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Interloper!
You wrote on 18 июня 2014 г. 15:45:20:

Interloper> Бред несешь ты. Если в условии отбора есть фильтрация по другим полям,
> то автоматический разворот в OR не поможет.
и всё таки, не смотря на всю мою воспитанность, я таки скажу: не песди.

Код: sql
1.
2.
3.
4.
5.
SELECT * FROM RDB$RELATION_FIELDS r
WHERE r.RDB$RELATION_NAME IN (:NAME1, :NAME2)
  AND r.RDB$FIELD_NAME = :NAME3

PLAN (R INDEX (RDB$INDEX_15, RDB$INDEX_4, RDB$INDEX_4))


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673156
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, есть индекс по полям (F1, F2) с хорошей селективностью.
Для запроса
Код: sql
1.
2.
  SELECT * FROM TABLE1
  WHERE F1 IN (:V11,:V22) AND F2 = :V2 AND F3 = :V3 AND F4 = :V4


в плане не будет использования индекса (F1,F2) на первом месте. А вот если переписать запрос так, то все хорошо:
Код: sql
1.
2.
3.
  SELECT * FROM TABLE1
  WHERE (F1 = :V11 AND F2 = :V2 AND F3 = :V3 AND F4 = :V4) 
    OR (F1 = :V12 AND F2 = :V2 AND F3 = :V3 AND F4 = :V4)
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673161
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

с чего ты взял что так будет лучше? Ты статистику чтений сравнивал при фетче всех данных. Или тупо пытаешься использовать все индексы?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673167
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Лучше в плане выбора индекса с лучшей селективностью.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673174
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

я тебя спрашивал о количестве фетчей.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673175
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Чтений меньше в варианте с "in", но эти чтения обработаны с помощью индексов с худшей селективностью по сравнению со вторым вариантом.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673177
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Фетчей меньше в варианте с in
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673185
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperЧтений меньше в варианте с "in", но эти чтения обработаны с помощью индексов с худшей селективностью по сравнению со вторым вариантом."Так вам шашечки или ехать?"
Если вы предполагаете, что при использовании индексов с лучшей селективностью чтений станет ещё меньше, то, вероятно, вас не затруднит привести пример такого варианта вашего запроса?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673193
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

шёл бы ты читать Firebird: Методы доступа к данным

Стоимость доступа в данный момент измеряется в фетчах.

Код: sql
1.
2.
3.
4.
select * 
from table 
where field1 in (:value11,:value12) and 
         field2 = :value2



разворачивается в

Код: sql
1.
2.
3.
4.
select * 
from table 
where (field1 = :value11 or field1 = :value12) and 
         field2 = :value2



а не в то что ты написал.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673225
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Больше чтений на хороших индексах может выполняться быстрее, чем меньше чтений на плохих.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673233
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

А где я сказал, что оно разворачивается во что-то другое? Я привел способ написания запроса другой! Читай внимательнее.

P.S. И давно мы на ты, кстати?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673237
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

гонишь. Читай статью
Когда говоришь о чтениях уточняй о каких. Есть чтения с диска (Reads), а есть из кэша (Fetches).
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673242
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperБольше чтений на хороших индексах может выполняться быстрее, чем меньше чтений на плохих."Когда вы говорите, Иван Васильевич, такое впечатление, что вы бредите".
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673249
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperP.S. И давно мы на ты, кстати?

Модератор: Обращение на "ты" тут принято. Предлагаю сторонам снизить обороты.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673254
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Вы хотите сказать, что 10 чтений, каждое из которых выполняется за 100 мс, это быстрее, чем 100 чтений, каждое из которых выполняется за 5 мс?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673257
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Я в курсе, какие виды чтения есть.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673262
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperВы хотите сказать, что 10 чтений, каждое из которых выполняется за 100 мс, это быстрее, чем 100 чтений, каждое из которых выполняется за 5 мс?Начните с того, что изложите гипотезу, на основании которой вы делаете такие оценки.

P.S. "Селективность индекса" и "смежные данные" - разные и (вообще никак) не связанные понятия.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673265
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

На основании здравого смысла. Цель - ускорить выполнение запроса во времени, а не уменьшить количество чтений.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673269
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

попытаюсь объяснить. Селективность она работает в лоб только на равенство. Когда используется in, то можно грубо говоря умножить селективность на количество элементов в in. Для BETWEEN, >, < в качестве селективности вообще берутся константы. Если в тройке запилят гистограммы, то возможно это изменится
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673278
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperНа основании здравого смысла"Предположение - мать всех провалов"Цель - ускорить выполнение запроса во времени, а не уменьшить количество чтений.Тогда, вероятно, вам должно быть наплевать на планы, а в исходном сообщении должна была присутствовать статистика исполнения запросов и у более сложного время выполнения должно быть меньше?
Опять-таки, вероятно, такая статистика есть?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673293
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

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

Суть моего вопроса: правильно ли делать декомпозицию IN, как я показал на примере, если запрос после декомпозиции выполняется реально быстрее?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673301
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperСложно сравнить два приведенных запроса "в лоб", потому что после выполнения первого, второй будет уже читаться из кэша.

а выполнить первый запрос два раза нельзя?

InterloperСуть моего вопроса: правильно ли делать декомпозицию IN, как я показал на примере, если запрос после декомпозиции выполняется реально быстрее?

результат будет эквивалентен. А вот то что это выполняется быстрее далеко не факт. Опять будем загадками говорить? Или всё таки покажем реальные запросы, планы и статистику
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673304
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperСложно сравнить два приведенных запроса "в лоб", потому что после выполнения первого, второй будет уже читаться из кэша.Могу только присоединиться к мнению о вашей неадекватности.Суть моего вопроса: правильно ли делать декомпозицию IN, как я показал на примере, если запрос после декомпозиции выполняется реально быстрее?Если "реально быстрее", то где деньги, Зин статистика?
А во-вторых: даже предполагая, что вся сила - именно в гемоглобине, вы хотите, чтобы выбор делали за вас ???
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673611
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

похоже, ваша песня о том, как прочитанное в мозгу превращается совсем не в то, что было написано. Что ни сообщение - все поперек известных фактов.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673803
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Обоснуй
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673806
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Какая еще неадекватность? Ты о чем вообще? Учись говорить корректно, а не называть всех подряд дураками. Я ни разу не ошибся в том, что запросы кэшируются.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673807
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

И чем поможет выполнение запроса два раза?

Реальные запросы я показать не могу, так как это коммерческая информация. Я привел реальные запросы, изменив названия таблиц и полей.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673827
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения, что влезаю в ваше общение, но у меня вопрос, когда вы говорите
Interloperесть индекс по полям (F1, F2)
имеется ввиду индекс вида
Код: sql
1.
2.
CREATE INDEX TABLE_IDX1
ON TABLE (F1, F2)


или
Код: sql
1.
2.
3.
4.
CREATE INDEX TABLE_IDX2
ON TABLE (F2);
CREATE INDEX TABLE_IDX1
ON TABLE (F1);


как бы это должно повлиять на построение плана.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673852
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperИ чем поможет выполнение запроса два раза?
тем что при первом выполнении кэш заполнится. И тогда вместо

InterloperСложно сравнить два приведенных запроса "в лоб", потому что после выполнения первого, второй будет уже читаться из кэша.

оба запроса будут читать из кэша и их можно сравнивать.
Почему приходится объяснять прописные истины?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673856
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давно ли SQL запрос в отрыве от данных, приложения и структуры БД стал коммерческой тайной?
план и статистика видимо тоже тайна.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673861
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да что вы насели на человека. Пусть вещает.
Ведь на самом деле там не только поля, но и запрос другой. И даже сервер. И платформа.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673931
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

Ты у мамы шутник? Сервер тот, что я указал.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673936
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Вообще-то по запросу можно понять детали структуры. Тебя это смущает?
Вопрос в общем виде звучит так: как оптимизировать запросы с выражением "IN"?
Можешь ответить на него? Остальные выкрики - мимо кассы.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673951
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

в общем случае не могу ибо вариантов может быть много. План и статистику ты так и не привёл.
Конкретно вот для этого случая

Код: sql
1.
select * from table where field1 in (:value11,:value12) and field2 = :value2 



можно попытаться поставить +0

Код: sql
1.
select * from table where field1 in (:value11,:value12) and field2+0 = :value2 
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673967
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+0 в рассматриваемом примере не повлияет на план

Я проверил контрольный пример на своей базе. И под 1.5, и под 2.5.
Собственно, автор неправ в изначальной постановке проблемы.
Проблемы такой просто нет.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38673976
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperТы у мамы шутник? Сервер тот, что я указал.А запрос - нет. И вообще, тут рыбу заворачивали.
За маму можно и в глаз.
Жутких коммерческих секретов в запросах продуктового ритейлера навыдумывал. Гостайна на.

InterloperВопрос в общем виде звучит так: как оптимизировать запросы с выражением "IN"?
Можешь ответить на него? Остальные выкрики - мимо кассы.Ответ: для списка констант в IN() точно так же, как и без выражения "IN", никакой специфики тут нет.
Ответ не устраивает? Перечитай ещё раз Firebird: Методы доступа к данным , спроси, где ещё непонятно.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674018
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

автору нужен ответ на абстрактный вопрос, вот я и ткнул пальцем в небо, может поможет
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674077
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadster,

Первый вариант.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674078
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

И тогда оба запроса у меня выполняются за 0 мс. Не слишком информативно.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674085
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

Можно? Да ты что, с дивана можно много чего вещать.
Модератор: Предупредительный выстрел. Переход на личности недопустим.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674099
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

Как объяснить то, что в запросе
Код: sql
1.
2.
  SELECT * FROM TABLE1
  WHERE F1 IN (:V11,:V22) AND F2 = :V2 AND F3 = :V3 AND F4 = :V4


при построении плана сначала учитывается индекс по внешнему ключу (поле F3), а не по индексу (F1,F2) с лучшей селективностью?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674107
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperИ тогда оба запроса у меня выполняются за 0 мс. Не слишком информативно.

тогда чего ты там оптимизировать собрался? Хочешь чтобы время стало отрицательное?
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674121
Поручик ·· Ржевский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
голосую: убить. (с)
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674127
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Нет. На реальной БД данных может быть больше.
Я видел неоднократно в продакшн-коде, что многие избавляются от IN в запросах (методом декомпозиции, который я привел в примере) с целью подхватывания в план более быстрого индекса. Когда я спрашивал "Зачем?", мне так и ответили - "Чтобы выборка осуществлялась по хорошим индексам". И я хочу разобраться, действительно ли имеет смысл так делать, или ничего критичного в том, чтобы оставлять IN как есть.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674138
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Interloper!
You wrote on 19 июня 2014 г. 12:23:06:

Interloper> я хочу разобраться, действительно ли имеет смысл так делать, или ничего
> критичного в том, чтобы оставлять IN как есть.
не нужно ремонтировать то, что исправно функционирует.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674150
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperИ я хочу разобратьсяТот, кто хочет разобраться, приводит воспроизводимые примеры. Это совет на будущее, ибо с 1.5 разбираться будут уже только археологи :)
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674160
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloperа не по индексу (F1,F2) с лучшей селективностью?
потому что
WHERE F1 IN (:V11,:V22) AND F2 = :V2
это
WHERE ((F1 = :V11) OR (F1=:V22)) AND F2 = :V2
и никакая "лучшая селективность" тут не поможет.

Если у тебя разница в запросах 0мсек, то налей уж пару миллионов записей, чтобы разницу можно было оценить.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674165
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в следующем посте ТС-а не будет конкретного воспроизводимого примера, топик будет закрыт как не информативный.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674173
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interlopero_v_a,

Как объяснить то, что в запросе
Код: sql
1.
2.
  SELECT * FROM TABLE1
  WHERE F1 IN (:V11,:V22) AND F2 = :V2 AND F3 = :V3 AND F4 = :V4


при построении плана сначала учитывается индекс по внешнему ключу (поле F3), а не по индексу (F1,F2) с лучшей селективностью?

Потому что селективность (F1, F2) умножается на 2 и становится больше чем (F3). Оптимизатор - он умный.
...
Рейтинг: 0 / 0
Оптимизация запроса с выражением in
    #38674943
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvInterloperа не по индексу (F1,F2) с лучшей селективностью?
потому что
WHERE F1 IN (:V11,:V22) AND F2 = :V2
это
WHERE ((F1 = :V11) OR (F1=:V22)) AND F2 = :V2
и никакая "лучшая селективность" тут не поможет.+1
строить индекс отдельно на F1 и уже тогда будет о чём поговорить, наверное.
...
Рейтинг: 0 / 0
58 сообщений из 58, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация запроса с выражением in
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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