Library Cache.
В качестве первого механизма, который необходимо настраивать для оптимальной
работы сервера Oracle, все издания посвященные этому вопросу, называют Library
Cache [2]. Library Cache содержит shared SQL и PL/SQL areas. Library Cache
влияет на увеличение производительности, так как в нем содержатся часто
используемые SQL запросы. ORACLE использует его для синтаксического анализа и
определения плана выполнения оператора или процедуры. В дальнейшем при
выполнении несколькими пользователями одинаковых SQL операторов (под понятием
одинаковые подразумеваются идентичные SQL запросы вплоть до числа пробелов
между операторами и регистра букв) и процедур скомпилированного приложения, не
требуется каждый раз заново реализовывать план выполнения соответствующей
процедуры или SQL запроса.
ORACLE во время своей работы собирает разнообразную статистику, которую
сохраняет в системных таблицах. Статистика о том, насколько эффективно
используется Library Cache, хранится в системной таблице V$LIBRARYCACHE.
В этой таблице надо уделить внимание двум поля:
PINS - число раз, когда элемент в Library Cache исполнялся удачно.
RELOADS - число промахов в Library Cache, когда элемента не находилось и его
приходилось перегружать. Небольшое значение RELOADS показывает высокую
степень использования Library Cache.
Следующий запрос определяет отношения числа RELOAD к числу PINS:
SELECT SUM(reloads),
SUM(pins),
100 * (SUM(reloads) / SUM(pins))
FROM v$librarycache;
Если отношение числа RELOADS к числу PINS больше 1%, то это означает, что
Library Cache необходимо настраивать. Для этого надо переписать приложение так,
чтобы в нем использовались по мере возможности идентичные SQL предложения или
увеличить параметр SHARED_POOL_SIZE.
Параметр SHARED_POOL_SIZE задается в файле инициализации INIT.ORA, который в
Oracle 8i хранится по адресу: Имя диска\Oracle\ADMIN\Имя базы данных\pfile\.
Для того, чтобы новое значение вступило в силу необходимо производить останов
и перезапуск сервера ORACLE.