Оптимизация запроса ActiveRecord в Rails
Я углубляюсь, чтобы увидеть, есть ли способ сделать следующий метод более производительным.
В настоящее время он выполняется как часть фоновой работы, и, согласно New Relic, это вторая по продолжительности работа, которую мы имеем.
def items_to_check
items, opps = [Item, ItemOpportunity].map(&:arel_table)
Item.where(
items[:status].eq("current").and(items[:issue_date].lteq(maximum_allowed_issue_date))
.or(items[:uuid].in(
opps.where(opps[:invalidated_on].eq(nil)).project(opps[:product_uuid])
))
)
end
Я не эксперт в построении запросов ActiveRecord, поэтому, если кто-то может помочь разобраться в этом, это было бы очень полезно.