Установка размера кэша на уровне базы данных
Установка размера кэша на уровне базы данных
Существует несколько способов конфигурирования размера кэша для конкретной базы данных. Изменения не действуют до тех пор, пока не будет установлено новое соединение с Суперсервером Firebird или не будет соединен новый клиент с Классическим сервером.
Использование gfix
Рекомендуемый способ установки значения на уровне базы данных для перекрытия значения DefaultDbCachePages - использование утилиты командной строки gfix со следующими переключателями:
gfix -buffers n имя-базы-данных
где n- требуемое количество страниц базы данных. Этот способ позволяет точно задать размер кэша базы данных, уменьшая риск "недоиспользования" памяти или работы со слишком малым размером кэша, когда на сервере используются несколько баз данных с разными требованиями к размеру кэша. Установленный таким способом размер кэша будет использован до тех пор, пока не будет задано новое значение.
! ! !
ПРИМЕЧАНИЕ. Для запуска gfix вы должны быть пользователем SYSDBA или владельцем базы данных. Более подробную информацию об использовании gfix см. в главе 39.
. ! .
Использование инструмента запросов командной строки isql
У вас есть две возможности для увеличения количества страниц кэша в процессе одной сессии утилиты командной строки isql.
Первый вариант- включить количество страниц (n) как переключатель при запуске isql:
isql -с n имя-базы-данных
где n- количество используемых в сессии страниц кэша, которое временно перекрывает любое значение, установленное В DefaultDbCachePages (database_cache_pages) или в gfix. Должно быть больше 9.
В качестве альтернативы вы можете включить CACHE n В качестве аргумента оператора CONNECT при выполняющейся isql:
isql > connect имя-базы-данных CACHE n
Значение n может быть любым положительным целым количеством страниц базы данных. Если кэш базы данных уже существует по причине другого соединения с базой данных, то размер кэша увеличивается, только если значение n больше текущего размера кэша.
Использование буфера параметров базы данных
В приложении размер кэша может быть установлен в буфере параметров базы данных (Database Parameter Buffer, DPB) с использованием параметра isc_dpb_num_buffers или isc_dpb_set_page_buf fers в соответствии с требованиями вашего сервера.
* isc_dpb_num_buffers - устанавливает количество буферов (страниц кэш-памяти), которое будет использоваться для текущего соединения. Это имеет особый смысл в архитектуре Классического сервера, где каждое соединение получает статически выделенную кэш-память. Для Суперсервера настоящий параметр установит количество буферов, используемых указанной базой данных, если эта база данных еще не открыта, однако это значение теряется после того, как сервер закрывает базу данных.
* isc_dpb_set_page_buffers - используется как в Классическом сервере, так и в Суперсервере. Этот параметр имеет тот же эффект, что и использование gfix для постоянного перекрытия DefaultDbCachePages.
! ! !
ВНИМАНИЕ! Будьте осторожны, предоставляя приложению конечного пользователя возможность модифицировать кэш. Хотя любой запрос на изменение размера кэша будет проигнорирован во всех запросах соединения, кроме первого, предоставление возможности изменения установок сервера пользователям, не являющимися техническими специалистами, может иметь непредсказуемые последствия для производительности и оказать воздействие на весь сервер.
. ! .