Критерии просмотра: база данных против памяти против обоих - PullRequest
2 голосов
/ 21 марта 2019

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

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

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

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

1 Ответ

2 голосов
/ 21 марта 2019

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

Вот другой вариант использования между База данных и памятьvs Оба

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

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

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

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

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

...