Оптимизация запроса 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, поэтому, если кто-то может помочь разобраться в этом, это было бы очень полезно.

0 ответов

Другие вопросы по тегам