* Если вы увеличиваете размер страницы, размер кэша соответственно увеличится. Вы должны гарантировать, что вы получите количество физической памяти машины в соответствии с измененным размером кэша. Когда кэш достигнет размера, который слишком велик для хранения в RAM, он начнет записываться на диск, что полностью уберет все преимущества использования кэша.
* В Классическом сервере каждый клиент получает свой собственный кэш. Даже размер кэша по умолчанию в 75 страниц будет слишком большим, если база данных использует большой размер страницы.
Синтаксис:
gfix -b[uffers] n база-данных
Здесь n- размер резервируемого кэша (количество буферов с размером, равным размеру страницы).
Пример:
gfix -b 5000 d:\data\accounts.fdb
Если размер страницы базы данных 8192, то кэш в 5000 страниц займет примерно 40 Мбайт.
Другие режимы кэша
В настоящий момент переключатель -с[ache] n не используется; он зарезервирован для дальнейших реализаций.
Используйте вариант gfix -mo[de] для переключения режима доступа любого соединения с базой данных между "только для чтения" и "для чтения/записи". В базу только для чтения нельзя совсем выполнить запись - даже пользователю SYSDBA, ее владельцу или любому серверному процессу.
Синтаксис:
gfix -mo[de] {read_write | read_only} база-данных
Для переключения базы данных из режима чтения/записи в режим только для чтения:
./gfix -mo read_only /data/accounts.fdb
Для переключения базы данных из режима только для чтения в режим чтения/записи:
./gfix -mo read_write /data/accounts.fdb
Изменение диалекта базы данных
С переключателем -s[qi_diaiect] вы можете изменить диалект! базы данных на родной для Firebird диалект 3. После этого база данных перестает использовать диалект 1 и начинает подчиняться полным синтаксическим правилам SQL Firebird и может использовать все типы данных Firebird.
Но база данных продолжает хранить все существующие данные и определения в соответствии с диалектом 1. Здесь существует несколько ловушек, в особенности в отношении числовых типов с фиксированной точкой.
Короче говоря, изменение диалекта с помощью gfix не будет ни тактикой быстрой миграции, ни надежным способом миграции из диалекта 1 в диалект 3. Быстрое изменение средствами gfix означает медленный способ полной миграции. Опытные пользователи предлагают вместо этого извлечь скрипт схемы вашей базы данных диалекта 1, изменить подходящим образом определения, а затем использовать инструмент перекачки данных для перемещения старых данных в новую базу.
Если же вы все-таки хотите использовать этот способ, вот синтаксис:
gfix -s[ql_dialectj n база-данных
Здесь n равно 1 или 3.
Например, для изменения диалекта базы данных на 3 выполните:
./gfix -s 3 /data/accounts.fdb
Под Windows вы можете выполнить следующее:
gfix -sql_dialect 3 d:\data\accounts.fdb
Включение и отключение "использовать все пространство"
Firebird заполняет страницы базы данных таким образом, что объем хранимых на странице данных не превышает 80 процентов. Некоторое уплотнение можно получить, изменив коэффициент заполнения на 100 процентов. Это может привести к улучшению производительности при очень большом объеме добавления данных, в особенности если размер строки много меньше размера страницы и множество строк может экономно храниться на одной странице.
Также имеет смысл полностью заполнять страницы в базе данных, если вы планируете распространять ее как базу данных только для чтения, например, в качестве каталога или демонстрационного примера.
Командным переключателем является -u[se], который имеет два аргумента:
gfix -u[se] {reserve | full}
reserve устанавливает использование страницы на 80 процентов, a full устанавливает использование страницы на 100 процентов.
Для включения "использовать все пространство" применяйте команду: ./gfix -use full /demos/catalog.fdb
Для отключения "использовать все пространство" и возврата к 80-процентному заполнению применяйте команду:
./gfix -use reserve /demos/catalog.fdb
! ! !
ПРИМЕЧАНИЕ. Чтобы эта команда работала, база данных должна находиться в режиме чтения/записи.
. ! .
Включение и отключение синхронного вывода
Синонимом синхронного вывода является Forced Writes. Когда поведение является синхронным ("Forced Writes включено"), новые записи, новые версии записей и удаления немедленно записываются на диск после пересылки. При асинхронном выводе ("Forced Writes отключено") новые и измененные данные сохраняются в кэше файловой системы, полагаясь на поведение операционной системы, когда она выведет их на диск.
Читать дальше