Эффективность запроса - выберите 2 последние записи "группа / пакет" из таблицы
Мы протестировали довольно интересный SQL-запрос. К сожалению, оказалось, что этот запрос выполняется немного медленно - O(n2) - и мы ищем оптимизированное решение или, может быть, также совершенно другое?
Цель:
We would like to get for:
- some customers ("record_customer_id"), e.g. ID 5
- the latest 2 "record_init_proc_id"
- for every "record_inventory_id"
Запрос работает нормально и показывает правильные результаты, но использует по крайней мере два полных сканирования таблицы, что, конечно, ужасно, если сканировать слишком много строк.
Можно ли (a) выбрать сначала все record_customer_id (s) в конкретном диапазоне дат, сохранив результаты этого запроса, а затем (b) выполнить рабочий запрос в скрипте SQL над этими сохраненными результатами?
Или, может быть, есть совершенно другой подход, который имеет отличную производительность?
Любая помощь очень ценится!