Это запрос, я использую:Oracle - проблема с производительностью. Запрос с использованием GroupBy
SELECT p.name, p.id
FROM v_emp e
INNER JOIN v_prof p ON e.code = p.code
WHERE e.emp_id IN (SELECT a.id
FROM t_approval a
WHERE a.code1 <> 'R'
AND a.code2 = 'P'
AND a.date1 IS NULL
AND a.date2 IS NULL
AND a.code3 = 'ADMIN'
GROUP BY a.id
)
GROUP BY p.name, p.id
ORDER BY p.name
Запрос занимает более 4 минут, чтобы выполнить. таблица t_approval имеет более 15 миллионов записей, и мне нужно, чтобы идентификаторы из этой таблицы соответствовали критериям поиска.
В этой таблице уже есть индекс для id, code1, code2, code3.
Пожалуйста, дайте мне знать, как сделать это быстрее.
«В этой таблице уже есть индекс для id, code1, code2, code3». Какая таблица? У вас их три. Кроме того, это четыре отдельных индекса или один комбинированный индекс? Пожалуйста, разместите структуры таблиц и индексы для всех таблиц в вашем запросе. А также разместите план запроса. –