powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тормоза при удалении записей
9 сообщений из 9, страница 1 из 1
Тормоза при удалении записей
    #32080077
Romario76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые!
Подскажите, пожалуйста!

Имеется следующая проблема: удаление записей из таблицы занимает немерянное количество времени.
Таблица содержит порядка 20-ти полей и около 150 тысяч записей. Хочется ее почистить. Вся база данных занимает около 35 метров.
Формирую следующий запрос (в WISQL):
DELETE FROM TABLE1 WHERE FIELD1 < VALUE
После этого можно курить. В течение 2-х часов наблюдаю часики, потом снимаю процесс.
Загрузка сервера во время работы 99-100%. Процесс-вьювером посмотрел объемы дисковых операций. За 2 часа работы сервер прочитал с диска около 20 гигов данных. Записал около мега.
Сервер 6.0

И еще. Такая же проблема возникала пару лет назад с пятым сервером. Также входил в ступор при удалении данных. Но тогда грешил на то, что БД большая (около 2 гигов, в таблице около 3,5 млн. записей).

Где я неправ? что можно сделать?
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32080167
Docent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен, но попробуй Select c таким же where. Если выберет быстро, то проверяй тригеры на удаление и внешние ключи с каскадным удалением или изменением.Если такие существуют разбирайся с вычислениями в тригерах или в подчиненных таблицах. Если выбор тоже виснет, попробуй создать индекс по полю в условии where, после этого повтори select и delete. Не пойдет - пиши снова...
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32080351
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что это связяно с транзакциями. Т.к. IB версионник, то он делает копии записей, вот оно и тормозит. А вот что с этим поделать - попробуй спросить на news://forums.demo.ru/epsylon.public.interbase - мне самому интересно.
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32082677
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот:
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32083958
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold прав имхо
точно с транзакциями
я как то мерял скорость удаления на большой таблице на сайбезе

в зависимости от кол-ва удаляемых записей
была такая же картина (триггеров небыло вообще)

по 10 удалял
по 1000
по 10000
и т.д.
время начало рости жутко быстро нелинейно с какого то большого количества
ну например со 100 000
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32083964
Привет!

Идти на ibase.ru и читать статью

C уважением,
Алексей
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32084136
SeaRunner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Алексей Ковязин

Надо ли вышесказанное понимать так, что тормоза будут присутствовать, если существует хоть какой-либо индекс для таблицы, над которой производится операции удаления?...

Если да - то как я понял это означает, что индексы имеет смысл использовать только в таблицах, над которыми не выполняются операции DELETE. Что вообще говоря существенно ограничивает функциональность сервера-то, не так ли?
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32084629
Привет!
Если внимательно прочитал статью, то сам и ответишь на свои вопросы.
Индексы и триггеры сильно тормозят.
Вопрос удаления очень больших количеств действительно больной для ИБ. Но у тебя всего 150 тысяч (и общий размер 35 мег) - это очень немного, как ни крути (если пень не 75 и ОЗУ больше 32).
Не могу дать конкретных рекомендаций, так как не знаю точно задачи и условий.
Общие рекомендации
- отключить авто сборку мусора (sweep interval в 0),
- страницу БД в 8192 установить
- проверить наличие триггеров на удаление и излишних индексов
- посмотреть план на delete в конце концов - может, он условие на удаление не цепляет и натуралом его перебирает? Это тоже долго


Общий вывод - для ИБ/FB такая проблема нетипична, скорее грабли где-то у тебя. Взгляни на проблемы свежим взглядом - может что и накопаешь.
Например, созадй читую базу с одной таблицей, залей сови записи туда - удали, замерь время. Затем оптять залей, положи индексы - снова удаление и замер. Последовательно наращивая условия вокруг этих таблиц найдешь решение.
Ну а если найдешь причину - пиши сюда, интересно.

С уважением,
Алексей.
...
Рейтинг: 0 / 0
Тормоза при удалении записей
    #32084631
И еще - ВЫБРОСь 6.0 - возьми как минимум Firebird 1.0.2 - он без многих глюков по крайней мере.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тормоза при удалении записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]