Падение индексов и первичных ключей

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
Shum
Сообщения: 7
Зарегистрирован: 17 мар 2006, 11:51

Падение индексов и первичных ключей

Сообщение Shum » 17 мар 2006, 12:46

Периодически падают индексы, а иногда даже первичный ключ.
База работает под управлением Yaffil 1.0.
Таблицы с падающими индексами активно используются (несколько десятков тысяч транзакций в день) и содержат порядка 5-10 миллионов записей.
При такой работе где-то раз в неделю-две приходиться делать восстановление базы. Можно конечно пересоздавать только индексы на эти таблицы, но по времени это сравнимо.
Размеры самих записей небольшие (порядка 50-100 байт). Индексов по этим таблицам не более 2-х десятков, причем составных не много и по неболее чем 2-м полям.
Что характерно, есть одна подобная таблица, на которой индексы не падают.
Чем это может быть обусловлено и как с этим бороться?
База используется в режиме 24*7 и частые остановки для восстановления недопустимы.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 мар 2006, 12:48

можно проверить железо (память)
База используется в режиме 24*7 и частые остановки для восстановления недопустимы.
www.ibase.ru/devinfo/sys_failure.htm

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 мар 2006, 13:20

Сервер часто падает или принудительно останавливается? Свет часто гаснет? УПС есть? Индексы обычно страдают первыми.

Shum
Сообщения: 7
Зарегистрирован: 17 мар 2006, 11:51

Сообщение Shum » 17 мар 2006, 14:14

Перебои с питанием исключены! Совершенно!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 мар 2006, 14:58

а ты как обнаруживаешь повреждение индексов? в логе? и там точно нет (в логе) падений или нештатных рестартов сервера?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Падение индексов и первичных ключей

Сообщение hvlad » 17 мар 2006, 15:01

Shum писал(а):Периодически падают индексы, а иногда даже первичный ключ.
База работает под управлением Yaffil 1.0.
Таблицы с падающими индексами активно используются (несколько десятков тысяч транзакций в день) и содержат порядка 5-10 миллионов записей.
Что такое падают ?
Как об этом узнаёте и что в yaffil.log ?
Массовые insert\update\delete с одинаковыми ключами есть ?
Какой билд дятла ?

Shum
Сообщения: 7
Зарегистрирован: 17 мар 2006, 11:51

Сообщение Shum » 17 мар 2006, 17:44

Падают - это значит в какой-то момент сервер начинает страшно тормозить выдавая ответы на запросы к этим таблицам раз в 100-1000 медленнее, загрузка процессора 100% при этом время ядра 50%!

При попытке с делать простейшую выборку select * зависает напроч.

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

Версия 1.3.0.887 Classic

В логе ничего подозрительного нет. Максимум - несвоевременное завершение соединения со стороны клиента. Пользователи не дожидаются отвисания часами и снимают клиентов.

Массовые insert-delete с одинаковыми ключами индексов есть. Но не с первичным.

Для одной таблицы планировщик периодически гоняет пересоздание индексов - но это не дело!

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 мар 2006, 18:15

Shum писал(а):Падают - это значит в какой-то момент сервер начинает страшно тормозить выдавая ответы на запросы к этим таблицам раз в 100-1000 медленнее, загрузка процессора 100% при этом время ядра 50%!
Тьфу, блин... Падают... Мусору надо плодить менше, а собирать его часче, и не держать висячие сутками транзакции. Вот если запись в таблице есть, а по индексу не селектится - это да, падают.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 17 мар 2006, 18:16

Shum писал(а):Падают - это значит в какой-то момент сервер начинает страшно тормозить выдавая ответы на запросы к этим таблицам раз в 100-1000 медленнее, загрузка процессора 100% при этом время ядра 50%!

При попытке с делать простейшую выборку select * зависает напроч
Мусор собирать нужно, однако. Хотя бы иногда.
IBAnalyst возьми, когда опять тормоза начнутся, и посмотри на своё безобразие в БД

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 мар 2006, 01:36

IBAnalyst + читать хелп к нему.
В Yaffil работает кооперативная сборка мусора
(www.ibase.ru/devinfo/garbage.htm), а не фоновая. Отсюда тормоза на запросах. Но обычно так быть не должно, значит скапливается мусор. Значит фигово работаете с транзакциями, уважаемый.
Могу в саппорте выдать монитор транзакций, посмотришь, чем у тебя движение транзакций отличается от систем, которые по миллиону транзакций в день стартуют, и в ус не дуют.

Ответить