Область разделяемого пула Oracle 9i ( SHARED POOL ) сохраняет данные словарного и библиотечного кэша - информацию об операторах, выполняемых в базе данных. Буфер блока разрешает пользователям базы данных совместно использовать информацию о структуре и о данных, а библиотечный кэш дает возможность совместно использовать наиболее распространенные команды SQL.
Разделяемый пул SQL содержит план выполнения и дерево грамматического разбора для операторов SQL, выполняемых в базе данных. При повторном использовании того же оператора SQL (любым пользователем) доступная в разделяемом пуле SQL информация о результатах грамматического разбора позволяет ускорить его выполнение.
Область разделяемого пула управляется по алгоритму LRU. При заполнении пула из кэша библиотеки удаляются реже всего использовавшиеся пути выполнения и деревья синтаксического разбора, что позволяет добавить туда новые записи. Если разделяемый пул SQL слишком мал, операторы будут постоянно перегружаться в библиотечный кэш, что повлияет на производительность. Можно динамически модифицировать размер разделяемого пула, изменив параметр SHARED_POOL_SIZE (в байтах), который задается в файле параметров инициализации. Задаваемое значение должно быть целым числом, кратным размеру гранулы.
Область разделяемого пула включает в себя библиотечный кэш, словарный кэш данных и разделяемую область SQL. Это можно проверить, просмотрев V$SQLSTAT. Если заданное вами значение параметра инициализации SGA_MAX_SIZE превосходит весь объем памяти, требуемый параметрами инициализации, вы не сможете ничего изменить. В качестве альтернативы можно уменьшить размер разделяемого пула; таким образом, вы сможете дать память буферному кэшу или уменьшить его размер и отдать эту память разделяемому пулу. При задании довольно большого SGA_MAX_SIZE достигается гибкость при изменении первого или второго, или обоих.