Какая пропорция строк соответствует идентификатору приоритета / критериям статуса?
Если, например, совпадают 20% строк, то в 20% случаев потребуется посетить строку, чтобы получить дополнительнуюподробности.Если он посещает 20% строк, он, вероятно, посетит 80-90% блоков.В этом случае было бы правильно игнорировать индекс.
Однако, если он использует индекс для запроса без объединения, это, скорее всего, связано со значением a.list_id.Если он использует индекс BITMAP, для каждой найденной строки он должен получить доступ к таблице T_LIST по идентификатору.Если T_LIST большой и id не проиндексирован, это может означать, что повторные полные сканирования T_LIST являются плохой идеей.
В этом случае он может получить все совпадающие строки из T_MESSAGE_TRANSMIT, отсортировать их по ID и затем получитьсоответствующие строки из T_LIST.Может также подойти хеш-соединение с T_LIST.
Кроме того, вы уверены, что не хотите просто сделать
SELECT a.id,
a.date_insert,
a.message#cnt
FROM T_MESSAGE_TRANSMIT A
WHERE a.priority_id = 0
AND a.status = 'Q'
AND a.list_id in (select l.id from T_LIST l)
Если идентификатор не уникален в T_LIST, вашоригинальный SQL будет генерировать дубликаты.