Критерии просмотра: база данных против памяти против обоих

Мне было интересно, знает ли кто-нибудь, как лучше всего использовать режим выполнения запроса внутри ADF? Насколько я понимаю:

База данных: результаты поиска фильтруются из таблицы базы данных каждый раз, когда выполняется запрос. В памяти: результаты фильтруются из кэш-памяти ВО. Он будет использовать строки, которые уже есть в наборе строк. Это остановит ненужные обращения к БД. Оба: результаты фильтруются из существующего набора строк, а также из отфильтрованных результатов из базы данных. Это полезно, если вы хотите также отфильтровать незафиксированные записи.

Причина, по которой я спрашиваю, заключается в том, что у меня были некоторые проблемы с использованием опции Both. Мои переменные привязки не обновлялись должным образом.

Заранее спасибо!


person DunDmy    schedule 21.03.2019    source источник


Ответы (1)


По моему опыту, вы всегда должны использовать базу данных, если вам не нужно фильтровать недавно созданную и еще не зафиксированную строку.

Вот различные варианты использования базы данных, памяти и обоих

Режим базы данных позволяет запрашивать таблицу базы данных и обеспечивать актуальность данных, которые вы обслуживаете для своего пользователя. Если вы только что создали новую строку и не зафиксировали ее в базе данных, применение критериев представления к объекту представления в режиме базы данных не приведет к отображению этой новой строки. Это режим "по умолчанию".

Режим памяти позволяет запрашивать данные кэша объекта просмотра. Таким образом, выполнение запроса отобразит вашу недавно созданную, а не зафиксированную строку, но не отобразит новую созданную строку в базе данных.

Оба режима позволяют отображать только что созданную и не зафиксированную строку и отображать любую вновь созданную строку в базе данных. Но обычно по какой-то причине это происходит довольно медленно.

Вы можете прочитать больше здесь (https://docs.oracle.com/middleware/12213/adf/develop/working-programmatically-view-objects.htm#ADFFD1223)

По умолчанию объект представления выполняет свой запрос к базе данных, чтобы получить строки в своем результирующем наборе строк. Однако вы также можете использовать объекты просмотра для выполнения поиска в памяти и сортировки, чтобы избежать ненужных обращений к базе данных. Этот тип операции идеален для сортировки и фильтрации новых, еще не опубликованных строк набора строк объекта просмотра; в противном случае неопубликованные строки добавляются в верхнюю часть набора строк.

person Cedric    schedule 21.03.2019