Для начала inmemory_size
должно быть около 100M .
Следующая команда должна показать соответствующее значение размера для параметра inmemory_size
:
show parameter inmemory_size
Загрузка сегментов таблицы в область памяти запускается, когда выполняется полное сканирование таблицы или условие приоритета памяти отличается от none
, поэтому мы должны быть уверены, что запрос на выборку, который вы выполнили, прошел по пути table access full
.
Итак, еще один способ начать полное сканирование таблицы - это сделать select count(*) from table
.
Или вы можете использовать populate
процедуру из dbms_inmemory
package , чтобы загрузить таблицу вручную в область памяти.
Пример использования (для пользователя inmem_user, таблица t1):
exec dbms_inmemory.populate('INMEM_USER','T1');
Еще одна вещь, которую следует рассмотреть здесь относительно запросов v$im_segments
, это; bytes_not_populated
и populate_status
столбцы также должны быть запрошены для правильности.
Когда v$im_segments
возвращает строки, bytes_not_populated
должно быть 0
и populate_status
должно быть COMPLETED
.
Более подробную информацию о населенности можно найти здесь здесь