Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему может очень быстро расти база? / 22 сообщений из 22, страница 1 из 1
15.06.2004, 19:14
    #32562438
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Проблема на Access 2000.
Та база которая состоит только из таблиц - может неожиданно быстро начать расти и вырасти до предельного размера, после чего падает.

Пополняется она через клиентские части путем ручного ввода операторов.

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

Автозамена имен отключена.

Сжатие восстановление не всегда возможно, так как кто-то постоянно работает в базе.

Хотя понимаю, что мусор может быть в основном из-за "удаленных" записей, но их не так много в массовом порядке.

В служебные таблицы что-то из клиентских частей может писаться неявно (т.е. не в коде напрямую)

Может у кого какие-то мысли есть на этот счет?
...
Рейтинг: 0 / 0
15.06.2004, 19:42
    #32562473
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Faq и поиск по форуму пробежал.

Грешу на индексы.

Но может еще что-нибудь?
...
Рейтинг: 0 / 0
15.06.2004, 21:07
    #32562541
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
авторПричем количество записей в реальных рабочих таблицах не увеличивается.

Но сами-то записи меняются часто?
...
Рейтинг: 0 / 0
15.06.2004, 21:53
    #32562582
vam911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Встречал тот же трабл в экселе. В чем дело не понял (на вирус не похоже).
Думаю глюк микрософта.


Рекомендую создать новую БД и перетащить туда все объекты
...
Рейтинг: 0 / 0
16.06.2004, 09:58
    #32562885
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
vam911Рекомендую создать новую БД и перетащить туда все объекты

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

Это все равно это борьба с симптомами, а как бы побороть саму причину?
...
Рейтинг: 0 / 0
16.06.2004, 10:18
    #32562930
N_A
N_A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Похожая ботва, все не доходили руки спросить, ибо не напрягает, но всеже интересно:
Интерфесная часть минимальным размером где-то 4 мега, на одном из 5 компов растет значительно быстрее(на всех скажем 5, а на этом компе 20). На всех компах работа в базе одна и таже, винды 98SE, вроде с одного дистрибутива, офисXP - везде одинаковый. Аналогичную ботву видел давно, на 97Access+95винда - база на одном из 2-ух компов за пару месяцев вырастала с 2 до 80Мб.
После сжатия в обоих случаях все возвращалось к нормальным размерам.

Предположения разные (винды,железо...), но нет времени протестить, может кто ещё что раскажет для статистики.
...
Рейтинг: 0 / 0
16.06.2004, 10:18
    #32562932
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
автора как бы побороть саму причину?
но вы для этого вы недостаточно рассказали о принципах работы вашей базы.
Если уж в ниx ничего не пишется, то может делать их только для чтения?
...
Рейтинг: 0 / 0
16.06.2004, 10:25
    #32562944
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
авторИнтерфесная часть минимальным размером где-то 4 мега, на одном из 5 компов растет значительно быстрее(на всех скажем 5, а на этом компе 20).
Дык может на этом компе просто работают больше.
Интерфейсная часть с линкованными таблицами при интенсивной работе действительно растет очень быстро. Я в некоторых случаях отказывался от использования прилинкованных таблиц.
А у автора вопроса растет backend.
...
Рейтинг: 0 / 0
16.06.2004, 10:32
    #32562964
NikP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
К vam911
Встречал тот же трабл в экселе. В чем дело не понял (на вирус не похоже).

В экселе есть такая штука как управление доступом к файлу. Если стоит галка разрешить совместный доступ, то запоминаются все исправления от разных пользователей и объем файла растет на глазах. Ничего другого пока не встречал
...
Рейтинг: 0 / 0
16.06.2004, 10:33
    #32562970
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
2 Serge Gavrilov
Интерфейсная часть с линкованными таблицами при интенсивной работе действительно растет очень быстро. Я в некоторых случаях отказывался от использования прилинкованных таблиц
А можно чуть поподробнее? Почему именно линкованные таблицы мешают?
...
Рейтинг: 0 / 0
16.06.2004, 10:46
    #32563007
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Когда растет интерфейсная часть, это понятно - компилирование/декомпилирование кода, временные таблицы, место для вспомогательных вычислений (запросов, объектных переменных, ...)

А вот когда backend-база в которой только например две таблицы в одной записей 15-20 (стандартные типы), в другой 1000-2000 записей. Количество записей не растет катастрофически, т.е. операторы заполняют ручками по 1 строчке во вторую таблицу. Выбирают записи из второй таблице по критериям. Или редактируют какую-нибудь запись. Или удаляют тоже по одной.

Полей MEMO нет. Только обычные поля - даты, текстовые строки максимальной длинны 255 символов, числовые целые.
Индексы по полям дата, по полю тип.

Так вот эта база (где только две таблицы) может неожиданно начать расти и за несколько часов вырасти до 1Mb, хотя количество записей увеличивается во второй таблице на 10-20 записей.

Я подозреваю две причины:
1) что пухнет база из-за индексов
2) из-за того, что какая-то транзакция у пользователя при вводе/редактировании/удалении какой-то записи налетает на блокировку и держит таблицу. Из-за чего очень быстро накапливается мусор.
Причем пробежался по коду и посмотрел, что при блокировке выкидывать пользователя хотя бы по тайм-ауту. Все транзакции корректно завершаю.

Но, когда база выросла, с ней даже repair невозможно сделать, она пишет что база в использовании у другого пользователя, хотя я точно знаю, что с ней никто не работает в данный момент.
Кстати, по файлу Ldb - этого коннекшена не видно.

Значит кто-то некорректно вышел из базы не дождавшись завершения транзакции?

Я может где-то не прав? Или не туда рою?
...
Рейтинг: 0 / 0
16.06.2004, 10:46
    #32563010
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
авторА можно чуть поподробнее? Почему именно линкованные таблицы мешают?
Они не мешают, просто размер интерфейсной базы растет.
...
Рейтинг: 0 / 0
16.06.2004, 10:52
    #32563026
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
автор1) что пухнет база из-за индексов

Индесксы занимают определенную долю общего размера записи, поэтому должно расти общее число неиспользуемых записей.
...
Рейтинг: 0 / 0
16.06.2004, 11:00
    #32563046
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
2 Serge Gavrilov
Они не мешают, просто размер интерфейсной базы растет.
Оно понятно, что растет. Есть подозрение, что растет по разному в зависимости от... ээээ... собственно, в этом и проблема, что не знаю, в зависимости от чего

Столкнулся однажды со случаем, когда при многократном выполнении неких запросов интерфейсная часть вырастала в десятки раз (с 7мб до 250мб). Причем вылечилось это именно отказом от линкованных таблиц (вместо них открывал DAO.Database, создавал там временный DAO.QueryDef и кучу раз его Execute)

В лабораторных/тепличных условиях воспроизвести это не получилось. Думал, что ты обладаешь каким-то сокровенным знанием :)

Сорь за оффтоп.
...
Рейтинг: 0 / 0
16.06.2004, 11:02
    #32563055
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
две таблицы в одной записей 15-20 (стандартные типы), в другой 1000-2000 записей.
может неожиданно быстро начать расти и вырасти до предельного размера , после чего падает
Пара тысяч записей за день распухает до 2Гб???
Что-то не так.
...
Рейтинг: 0 / 0
16.06.2004, 11:10
    #32563085
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Вот и мне кажется что что-то не так!
...
Рейтинг: 0 / 0
16.06.2004, 11:10
    #32563088
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
авторвместо них открывал DAO.Database, создавал там временный DAO.QueryDef и кучу раз его Execute

Можно и просто запросы создавать (или инструкции SQL для DataSource, RowSource) с прямы обращением к базе с таблицами.
...
Рейтинг: 0 / 0
16.06.2004, 11:30
    #32563148
аха
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
наблюдаю вполне шустро пухнущую базку без линкованных таблиц (на запросах с 'IN ...'). По крайней мере вдвое распухает шустро (с момента выкладывания). Иногда начинает очень шустро расти и сама базка (с данными).


Можно наверное убрать все временные QueryDef-ы (и переопределяемые, если таковые есть) в другой DAO.Database (безинтерфейсный) на линковках (или как иначе подцепленных - дело вкуса). Интерфейсную бд сделать только для чтения (ругательство как-нить пригасить можно?). И посмотреть как будет пухнуть БД с темповыми QDF при отсутствии в ней какой-либо интерфейщины.
...
Рейтинг: 0 / 0
16.06.2004, 16:55
    #32564147
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Кажется я нащупал источник проблемы - иногда юзеры пишут вместо даты только время (соответственно получается плохая нулевая дата), а Access строит индекс по данному полю.

Сейчас наложу ограничения, может поможет.
...
Рейтинг: 0 / 0
16.06.2004, 16:59
    #32564160
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Не понял
Типа если пользователи напишут правильную дату - то аксес не будет индекс строить что-ли?
...
Рейтинг: 0 / 0
16.06.2004, 17:03
    #32564182
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Индекс строиться по этому полю.
Я так понимаю, при вставке/изменении/удалении перестраивается.

Если дата правильная то это не так болезненно.
Если плохая - только время (дата нулевая), то видимо ему плохо и он пухнет.
Пока проверяю эту гипотезу.
...
Рейтинг: 0 / 0
16.06.2004, 17:08
    #32564197
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему может очень быстро расти база?
Вообще-то индекс по дате мало отличается от индекса по числу с плавающей точкой. Что-то моя не понимай - как может такому индексу становится плохо при наличии значений из диапазона от 0 до 1.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему может очень быстро расти база? / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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