powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация запроса с выражением in
25 сообщений из 58, страница 2 из 3
Оптимизация запроса с выражением 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
25 сообщений из 58, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация запроса с выражением in
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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