Удалить мусор из базы данных Firebird
База данных Firebird 2.1.3, по-видимому, создает много мусора из незавершенных транзакций, из-за чего база данных работает очень медленно, пока ее мусор не будет удален посредством очистки базы данных или перезапуска сервера. Размер моей базы данных 30гб +. Ты хоть представляешь, что может быть причиной этого? Создают ли какие-либо новые хранимые процедуры лишний мусор? Помогите мне, пожалуйста.?
1 ответ
Базы данных Firebird, работающие медленно после определенного периода времени, обычно являются признаком плохого управления транзакциями клиента. Это можно легко проверить, проверив различные счетчики транзакций со страницы заголовка, которые можно запросить, выполнив:
gstat -h <yourdatabase>
когда ваша база данных становится медленной. Например: Практически все библиотеки доступа при выполнении транзакций в режиме автоматической фиксации (в основном, когда вам не нужно запускать явные транзакции в клиентском приложении), используют COMMIT RETAINING, который в основном блокирует перемещение OIT/OAT вперед.
Помимо инструмента командной строки gstat, с Firebird 2.1 у вас также есть таблицы мониторинга, в частности MON$TRANSACTIONS, для определения долгосрочных транзакций.