Я использую Oracle Database 11g Release 11.2.0.2.0 и пытаюсь включить кэш клиента oci. Это не работает
Изменения конфигурации, которые я сделал, чтобы включить его, -
- Включил кэш набора результатов клиента, установив для параметра сервера client_result_cache_size значение 10485760 (10 МБ)
- Перезапустил экземпляр oracle после установки вышеуказанного параметра
- Добавлена аннотация таблицы путем выполнения оператора ALTER TABLE emp RESULT_CACHE (MODE FORCE). Я проверил, что аннотация применяется позже по запросу к пользовательской таблице.
- Включено кэширование операторов на стороне клиента, т.е. в драйвере JDBC.
- Использовал подготовленные операторы для выполнения запроса, чтобы ускорилось кэширование операторов. Из журналов драйверов я убедился, что при выполнении последующих запросов после первого использовался тот же дескриптор оператора.
После трехкратного выполнения запроса на подготовку подготовленного оператора я проверил представление CLIENT_RESULT_CACHE_STATS $. Но это представление не привело ни к каким строкам.
В рамках устранения неполадок я даже попытался добавить подсказку / * + RESULT_CACHE * / к запросу, но представление не дало никакого результата.
Из профилировщика (flextracer) я мог видеть, что OCI-вызовы все еще выполняются на сервере для получения результирующего набора запроса select. Также при включении трассировки sql из tkprof я увидел, что при каждом выполнении запроса увеличивается количество строк, извлекаемых на сервере, что указывает на то, что кэширование набора результатов клиента в OCI не работает.
Есть ли какие-то шаги, которые я пропустил?
Заранее спасибо.