Базы данных Oracle - статьи



             

Клиентский кэш результатов запроса


Рассмотрим ситуацию, когда клиент должен вызывать одни и те же данные через медленное сетевое соединение. Хотя база данных может отправить результаты клиенту из кэша почти немедленно, результат должен еще добраться по проводам к клиенту, что увеличивает общее время выполнения. Существуют специализированные промежуточные оболочки, такие как Oracle Coherence для кэширования данных в Java, PHP и Ruby, но что если бы существовал общий способ кэширования данных на клиентском уровне?

База даных Oracle 11g предоставляет для этих целей клиентский кэш результатов запроса (Client Query Result Cache). Все клиентские стеки базы данных, которые используют драйверы OCI8 (C, C++, JDBC-OCI и так далее), могут использовать эту новую возможность, которая позволяет клиентам кэшировать результаты SQL-запросов локально, а не на сервере. В итоге клиентский кэш результатов запроса предоставляет следующие преимущества:

  • Освобождение разработчиков приложений от построения согласованного по процессам (consistent but per-process) кэша результатов SQL, разделяемого всеми сессиями
  • Расширение кэширования запроса на сервере до памяти на стороне клиента, путем использования более дешевой клиентской памяти и локального кэширования каждого рабочего набора приложения.
  • Увеличение производительности за счет уменьшения обращений к серверу.
  • Повышение масштабируемости сервера за счет сбережения его ресурсов.
  • Предложение прозрачного управления кэшем: управление памятью, параллельный доступ к наборам результатов и так далее.
  • Поддерживаемая прозрачным образом согласованность кэша с изменениями на стороне сервера
  • Предложение согласованности в среде RAC

Все, что нужно сделать, чтобы использовать эту возможность – это установить параметр инициализации:

CLIENT_RESULT_CACHE_SIZE = 1G

Этот параметр определяет клиентский кэш размером в 1 Гб, который является суммой кэшей на всех клиентах. (Это статический параметр, поэтому необходимо остановить базу данных, чтобы его установить.) Можно настроить кэши на каждом клиенте, определив другие параметры в файле SQLNET.ORA на стороне клиента:




Содержание  Назад  Вперед