Описание тега select-n-plus-1

Используйте этот тег для проблемы ORM, известной как выборка N+1 запросов.
2 ответа

Hibernate Subselect vs Batch Fetching

Hibernate предоставляет (как минимум) два варианта решения проблемы N+1. Один из них устанавливает FetchMode на Subselect, который генерирует выбор с предложением IN и выбором внутри этого предложения IN. Другой - указать BatchSize, который генериру…
30 авг '11 в 05:42
1 ответ

Как эффективно выполнять вложенные запросы SQLlite

У меня есть база данных (футбольных) игр, содержащая дочерние таблицы периодов (например, первая и вторая половина), события (например, цель, предупреждение) и места (где вы были до и во время игры). Чтобы отобразить родительскую таблицу игр, я испо…
09 сен '17 в 22:23
1 ответ

Hibernate выполняет N+1 выбор вместо 1 запроса при использовании Query Cache

Я застрял с проблемой, я чувствую себя действительно потерянным и не знаю, что делать. Я использую кеш запросов + кэш второго уровня и хочу правильно кешировать результаты в течение 10 секунд. Так вот мой ehcache.xml: <ehcache xmlns:xsi="http://w…
1 ответ

N+1 проблема для пользовательского метода в рельсах

В моем приложении рельсы у меня есть User модель с методом под названием price_tier: def price_tier Spree::PriceTier.by_code[read_attribute(:price_tier)] end Тем не менее, когда у меня есть коллекция @users и вызовите price_tier один за другим, он з…
29 окт '18 в 04:34
0 ответов

Как починить рельсы N+1

У меня есть определенные inlcudes в моем контроллере для модели contentType. Мне нужно поймать все комплекты контента на этой странице с предварительной загрузкой. Это метод выборки для него: def fetch_content_suites ContentSuite .includes(:tools) .…
28 авг '17 в 13:24
2 ответа

EF Core вложенные результаты Linq select в N + 1 SQL-запросах

У меня есть модель данных, где объект "Top" имеет от 0 до N "Sub" объектов. В SQL это достигается с помощью внешнего ключа dbo.Sub.TopId, var query = context.Top //.Include(t => t.Sub) Doesn't seem to do anything .Select(t => new { prop1 = t.C…
1 ответ

Вопрос N+1 о двунаправленной связи один на один с Jpa и Hibernate

Выполняемый запрос: from PurchaseOrder o join fetch o.basket where o.statusE in (:statuses) Сопоставление в PurchaseOrder: @OneToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY, optional = false) @Fetch(FetchMode.JOIN) @JoinColumn(name="basket_i…
11 окт '13 в 16:12
1 ответ

Решение выбрать n + 1 автоматически

Это простой пример проблемы выбора n + 1 в ORM в pht, но идея должна быть такой же в других ORM других языков. Типичное решение состоит в том, чтобы использовать готовую загрузку, чтобы уменьшить его до 1 запроса, что я не думаю, что это очень слож…
1 ответ

Почему идентичные запросы NHibernate выполняются на порядок медленнее в проекте WinForm, чем в модульном тесте MSTest?

У меня есть приложение, которое запускается в качестве службы на производстве, но мы проводим некоторое ручное тестирование с простым графическим интерфейсом - в нем практически ничего не происходит, это просто оболочка с текстовым полем для ввода. …
2 ответа

NHibernate N+1 проблема извлечения

У меня есть сущность и беглое отображение, которое выглядит следующим образом. public class Client : EntityWithTypedId<long> { [Length(Max=50)] public virtual string GivenName { get; set; } public virtual IList<Address> Addresses { get; …
04 ноя '10 в 11:58
1 ответ

Я не могу избежать этого выбора N+1

У меня есть это отображение (оно пришло из adventureworks, так как я использовал его в демонстрационном приложении для автоматической подкачки страниц) ModelMapper mapper = new ModelMapper(new SimpleModelInspector()); mapper.Class<Contact>( k …
14 окт '11 в 06:50
3 ответа

JPA @OneToOne выберите списки с N+1 запросами

Я на самом деле пытаюсь использовать JPA @OneToOne аннотация, чтобы связать Child сущность к своему Parent, Это работает хорошо, за исключением того факта, что при получении списка Childs, движок JPA (в данном случае Hibernate) выполняет 1+n запросо…
1 ответ

Использование свойств навигации Entity Framework без создания большого количества запросов (избегая N+1)

Я использовал Entity Framework Profiler для проверки доступа к данным в проекте MVC и перебрал несколько страниц, где я делаю гораздо больше запросов к базе данных из-за проблем N+1. Вот простой пример, чтобы показать мою проблему: var club = this.A…
1 ответ

Эффективный подзапрос SQLAlchemy для последнего значения

Текущее значение сущности status Атрибут может запрашиваться как последняя запись в таблице EntityHistory для этого объекта, т.е. Entities (id) <- EntityHistory (timestamp, entity_id, value) Как мне написать эффективное выражение SQLALchemy, кото…
17 июн '16 в 19:45
1 ответ

Почему ВЫБИРАЕТ N + 1 без внешних ключей и LINQ?

У меня есть база данных, которая, к сожалению, не имеет реальных внешних ключей (я планирую добавить это позже, но предпочитаю не делать это прямо сейчас, чтобы облегчить миграцию). Я вручную написал доменные объекты, которые сопоставляются с базой …
26 сен '12 в 15:36
4 ответа

Почему n+1 выбирает шаблон медленно?

Я не очень разбираюсь в базах данных и только что прочитал о проблеме "n+1 selects". Мой дополнительный вопрос: если база данных находится на том же компьютере, что и моя программа, кэширована в ОЗУ и правильно проиндексирована, почему шаблон запрос…
07 окт '14 в 21:14
1 ответ

Rails ActiveRecord N+1 Проблема

У меня есть заявление для получения следующих данных: название порции еды, название еды, название еды и категория еды. и все четыре поля находятся в разных таблицах. я использую такое утверждение @food_servings = FoodServing.find(params[:food_servin…
28 июн '11 в 18:21
0 ответов

Как "группировать" разрешение свойства для списка объектов?

У меня есть список некоторых объектов, которые я заполняю из результата запроса к базе данных. List<Competition> myList; // fetched from DB Если мне нужно получить доступ к свойству одного / нескольких объектов в этом списке, что требует повто…
11 май '15 в 07:32
3 ответа

Избегать N+1 выбора с родным sqlQuery?

Вот что у меня есть: Entity A -> oneToMany -> Entity B -> manyToOne -> Entity C И поскольку мне нужно выполнить внутреннее соединение без внешних ключей между A и другим объектом X, я должен использовать createSqlQuery, а не createQuery.…
09 мар '11 в 15:48
1 ответ

Rails 4, подзапросы ActiveRecord SQL

:parent has_many :children и я пытаюсь получить возраст самого старшего ребенка для родителя в качестве атрибута на parent, Я открыт для любого решения, которое достигает этого эффективно. Причина, по которой я пытаюсь сделать подзапрос, состоит в т…
18 июн '15 в 16:43