FB 1.5 и большая таблица

Запросы, планы, оптимизация запросов, ...

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

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

Сообщение Merlin » 01 апр 2005, 23:19

Хоть винда для меня штука малоизвестная, но что-то берут меня смутные сомнения. Дело в том, что на моей базе (в пять раз больше объёмом) свип проходит за несколько минут максимум. И не жрёт никакой памяти. Но он еженощный. Не помыслить ли тебе ради эксперимента в другую сторону - насчёт управления транзакциями, например, с тем, чтобы мусора поменьше плодить и пооперативнее его собирать. Статистику посмотреть во время тормозов первым шагом. А то как правило страдающие тормозами бьют себя пяткой в грудь, что у них с этим полный ажур, а попросишь элеметарный вывод gstat -h в момент тормозов (а не до и не после) в студию, и шорстка на спине дыбом встаёт ;) А если ещё IBAnalyst на базу натравить да посмотреть, так одной шорсткой дело не кончается :)

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

Сообщение kdv » 02 апр 2005, 21:45

Да это я уже сделал (и перечитал, и сделал выводы): добавил правильный индекс по этому полю, и теперь всё работает нормально: и массовая вставка и выборка. Кстати, быстрее вставлять с активными индексами, чем их выключать, а после вставки включать, потому что при создании индекса приходится сканировать всю огромную таблицу, а это разрастание дискового кеша, своп, тормоза.
мда. какие-такие тормоза? у меня в тестовой лаборатории Intel по базе в 26 ГИГАБАЙТ по одной большой таблице индекс по int создавался около часа. На IB 5.1, в 1997 году. Соответственно, о каких-таких тормозах может идти речь СЕЙЧАС, даже на такой базе?

"индекс сделал" - это сделал выводы? Скажи пожалуйста, ну какая тебе радость с того, что тебе приходится сканировать всю эту таблицу? Зачем ты это делаешь, если этого можно НЕ ДЕЛАТЬ?
Исходные условия:
FB 1.5.1.4481-Win32
W2k Server, 512 Mb, iP4 2.4 ГГц

Есть большая (27 млн записей, 2.5 гигабайта)
еще раз "мда". у меня на личной машине тоже 512 мег памяти, и валяется биллинговая база в 2.2 гигабайта, по которой я иногда всякие запросы пускаю. Но это, простите, рабочая станция, а не сервер.
В общем, при любой операции, которая затрагивает большое количество записей (статистика за месяц, sweep, gbak), начинается своп, великий и тормозной.
Я лучше явно выделю под кэш БД 200-250 мегабайт, но без системного кеширования. Сдаётся мне, тормоза будут меньше.
Дык своп-то от нехватки физ. памяти идет.
О каком кэше в 200 мб идет речь на всего 512 мег физической памяти, если после загрузки самой Windows доступно в лучшем случае 250 мегабайт? Я вообще удивляюсь, тебе объясняют, что у людей базы по 8 гиг, и они не жалуются на подобное. И объясняют, как избежать проблем с совершенно ненужным полным сканированием базы (запросами по всем данным). И что никаких напрягов с кэшем ни при sweep ни при gbak нет. В общем, я чего-то видать не понимаю....

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

Сообщение kdv » 02 апр 2005, 21:48

и про запрет файлового кэша виндов я уже тоже писал. Это тебе не даст никакого прироста скорости. Попробуй сперва на Yaffil, просто ради интереса. там можно выключить файловый кэш.

Ответить