Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Вниз

Interbase(Firibird) чтоб его   Найти похожие ветки 

 
tyomchick   (2003-03-17 23:22) [0]

Есть быза, которая очень активно заполняется (в основном одна таблица) различнами клиентами. Среднесуточный рост размера базы составляет приблизно 15 Мб. В результате через 2-3 недели непрерывной работы сервера IB начинает жутко тормозить, при том что он там не единственный, а тормозит он весь сервак, зажирая все ресурсы ну и клиенты которые постоянно хотят от него данные в недоумении.
При этом число записей постоянно не растёт, т.к. устаревшие данные постоянно херятся, тока это не сказываеться полижительно ни на размер базы ни на производительности, а скорее наоборот. Скажем после запроса DELETE FROM DATA логически пустая таблица локальнно открываеться IBConsol-ью больше 10 секунд. При этом размер её не уменьшается, и продолжает расти при добавлении записей.
Была идея не удалять устаревшие данные, а заменять(Update-ить) их новыми. Тока пока опыты показывают, что от этого такой же результат как и от удаления.
В общем единственное что спасает это резервирование-восстановление, тока это не очень подходит. Потому как:
1. Сервер должен работать автономно, а автоматическое выполнение этой операции может привести к серьёзным проблемам
2. Не желательно рвать соединения со всеми клиентами даже на короткое время, так как можно потерять важные данные.

Блин, ну хоть какое то решение есть? Подскажите плиз!


 
dmi-vancev   (2003-03-18 01:07) [1]

Привет,tyomchick.
Кажись мы вляпались Ж:O
Посмотри на переписку dmi-vancev на этом форуме.
Пока никто ничего "умного" не сказал.


 
Rad   (2003-03-18 05:11) [2]

Да что тут "умного" говорить-то! :)
Это т.н. "мусор" - устаревшие версии данных. См http://www.ibase.ru/devinfo/oitoat.htm
Ну и желательно выключить Autosweep, установив sweep interval в 0. А чистку производить по ночам по расписанию.


 
Rad   (2003-03-18 05:15) [3]

А, забыл.
Чтобы тормозило меньше, надо подключаться с запретом сборки мусора: параметр транзакции no_garbage_collect
Но не забывать периодически проводить чистку по расписанию


 
Alexandr   (2003-03-18 07:30) [4]


> Кажись мы вляпались Ж:O
> Пока никто ничего "умного" не сказал.


кривые руки и ветер в голове до добра не доведут.
Ну изучите же вы, наконец, инструмент, с которым работаете. И работайте с ним ПРАВИЛЬНО


 
ufff   (2003-03-20 13:07) [5]

скажу это снова, и пусть мне возразят (для многих это очевидно и они молчат)

если мы удалим, а потом сразу добавим записи, то добавленные записи не будут записаны на место удаленных. удаленные записи ведь были только помечены на удаление.

записи реально будут удалены (ну или почти реально, так как освободится только место - получится просто дыра, в которую можно уже писать новые записи) например если по ним пройтись select"ом....
ex: select count(*) from ...

нужно помнить, что если делать например запрос
select * from ... where workdate > "2002-11-03"
а по полю workdate создан индекс, то удаленные записи совсем не обязательно будут просмотрены, так как вмешается индекс и select пройдется по записям workdate у которых > "2002-11-03" (и только по этим записям)

...уффф



 
Alexandr   (2003-03-20 14:28) [6]

ufff © (20.03.03 13:07)
ага. Именно так.


 
vopros   (2003-03-21 10:41) [7]

Явно база спроектирована не верно. 15 метров в сутки можно все экспонаты всех музеев мира и всю текстовую информацию занести.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
1-30418
dmk
2003-03-27 00:41
2003.04.10
Перехват перерисовки окна?


3-30267
yurikon03
2003-03-21 10:19
2003.04.10
Населить TTreeView данными из таблицы...


1-30375
Chlavik
2003-03-29 15:20
2003.04.10
Текст консольного приложения


3-30288
gonta
2003-03-20 15:35
2003.04.10
Мастера помогите с Fast Reportom


6-30482
TankMan
2003-02-12 00:52
2003.04.10
Какой-то глюк с ClientSocket





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский