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


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