** Tatiana |
Отправлено: 29.09.2005, 07:33 |
|
Не зарегистрирован
|
Access 2000, есть таблица , одно поле — дата/время, 12 полей-ординарное с плавающей точкой. Программно (Builder 6, компонта ADOQuery) добавляю в нее записи, нцулевых значений нет, удаления записей не бывает. Така вот, после добавления 100 000 записей бд весит 50 М, после сжатия — восстановления — 6 М. Почему так происходит и можно ли как-то бороться? |
|
AVC |
Отправлено: 29.09.2005, 08:00 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | Почему так происходит и можно ли как-то бороться? |
1. Такова жизнь.
2. Перестраивать базу (сжатие — восстановление). Поищите, на форуме выкладывали код как это делать программно. |
|
Zoth |
Отправлено: 29.09.2005, 21:04 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
Насколько я понимаю это хранится журнал транзакций. тоесть все изменения которые в происходили дублируют фактически всю информацию во всех ее стадиях. Рассказывать подробнее лень, если интеренсо почитай специфическую литературу.. Сжатие просто чистит этот журнал.. вот и все. Это тоже самое что Бэкап-ресторе на интербэйзе например (правда там не журнал транзакций а версии записи)... А лечить это программно можно, делай иногда сжатие и все... |
|
olegenty |
Отправлено: 03.10.2005, 12:27 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 Zoth — всё нифига не так.
|
|
Zoth |
Отправлено: 03.10.2005, 19:45 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
QUOTE (olegenty @ 03/10/2005, 12:27) | 2 Zoth — всё нифига не так. |
а как тогда? |
|
olegenty |
Отправлено: 04.10.2005, 11:27 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
в первую очередь вспомни, почему DBF файлы ТОЛЬКО раздувались, но НИКОГДА не становились меньше? или ты намекаешь на наличие в них лога транзакций? вот потому и ЛЮБЫЕ файлы БД могут только расти, пока ты сам не сожмешь их внешним средством, суть (как правило) — создашь новые файлы с теми же именами.
|
|
Guest |
Отправлено: 04.10.2005, 11:41 |
|
Не зарегистрирован
|
QUOTE (olegenty @ 04/10/2005, 11:27) | в первую очередь вспомни, почему DBF файлы ТОЛЬКО раздувались, но НИКОГДА не становились меньше? или ты намекаешь на наличие в них лога транзакций? вот потому и ЛЮБЫЕ файлы БД могут только расти, пока ты сам не сожмешь их внешним средством, суть (как правило) — создашь новые файлы с теми же именами. |
Ну с ДБФами все ясно.... Но например у МС SQL хранится лог транзакций, который можно чистить.. а в интербэйзе хранятся версии записей... это не тоже самое что в ДБФ... в ДБФе просто помечалось удаленным.. но смотри... в теме пишется что удаление записей не происходит. Следовательно это не удаленные записи которые можно просто почистить... А ваще то надо бы литературу почитать как там в акцессе )))) |
|
olegenty |
Отправлено: 04.10.2005, 16:41 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
вот я на то тебе и намекаю. потому что версии Interbase это не то же самое, что лог транзакций MSSQL, а лог транзакций MSSQL — это вообще отдельный набор файлов, каждый из которых также ТОЛЬКО УВЕЛИЧИВАЕТСЯ, и чтобы он уменьшился, надо сделать некоторое количество действий. с Access другая истроия. суть всё равно та же — файлы не могут уменьшаться, они могут только расти. для примера — напиши свою собственную файловую "субд". это пара дней работы, зато быстро осознаешь, каких усилий стоит действительно уменьшить размер файла.
|
|
Zoth |
Отправлено: 04.10.2005, 20:34 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
Я понимаю что это вообще разные вещи, но смысл что они обе влияют на размер БД.. Помоему просто этот лог транзакций в акцессе хранится вместе с базой (В MSSQL он отдельно)... Всеравно проблема в этом. )) спорим то ни о чем... Доказываем друг другу помоему одно и тоже.. чето я просто мысли уже формулироват не могу.. сижу тут как овощь.. юросил курить теперь из-за монитора не встаю почти.. |
|
olegenty |
Отправлено: 05.10.2005, 06:48 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
да нет в Access лога транзакций.
|
|
Gedeon |
Отправлено: 05.10.2005, 11:24 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Ну похоже размер растет не только из-за добавления записей, а потом удаления их не физически, а так сказать информационно, что происходит при сжатии файла. Это же у нас некая помесь среды разработки с БД, посему есть подозрение, что там еще всякая ересь хранится служебная, но никакого лога транзакций там точно нет, т.к. нет никакой возможности отката, а на спину он тогда вообще нужен? да и собственно, чтобы говорить о чем-то надо как минимум искать инфу у первоисточника или сторонних авторов ну или как минимум у людей к-рые этим занимаются постоянно, посему тут прямая дорога на sql.ru
|
|
Zoth |
Отправлено: 05.10.2005, 12:36 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
QUOTE (Gedeon @ 05/10/2005, 11:24) | Ну похоже размер растет не только из-за добавления записей, а потом удаления их не физически, а так сказать информационно, |
В вопросе четко написанно что записи вообще не удаляются..... раз нету лога транзакций, то для меня становится загадкой раздутие БД.
Да и фиг с ней... )) дай бог никогда больше не буду с акцессом работать
Отредактировано Zoth — 05/10/2005, 12:38 |
|
olegenty |
Отправлено: 05.10.2005, 13:28 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
но файлы баз так и будут раздуваться... невредно разобраться в природе
|
|
Daemon` |
Отправлено: 31.10.2005, 19:00 |
|
Не зарегистрирован
|
Раздувается мдб из-за логического удаления записей в таблицах и на формах (например создание, а потом удаление компонент формы/отчетов). Проэкспериментировав с этим пришел к выводу — лучший вариант — экспорт текущей БД в новую БД. Например старая БД весила 17 мБ, экспорт в только что созданную пустую — 6 мБ.
По этому вопросу очень много обсуждали на sql.ru, раздел FAQ. |
|
olegenty |
Отправлено: 01.11.2005, 11:56 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
хотел бы я посмотреть на промышленную БД весом в 17 МВ. хотел бы также посмотреть, как она будет экспортироваться, если работает в круглосуточном режиме (например, биллинговая система, или система контроля хода какого-либо процесса)...
|
|
Gedeon |
Отправлено: 01.11.2005, 12:17 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Ну, не надо, ты бы додумался строить промышленную систему любой сложности на MS ACCESS. Хотел бы я посмотреть .
|
|
olegenty |
Отправлено: 01.11.2005, 15:27 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
ну нафиг. FB/IB, либо MSSQL, в зависимости от задачи. увы, пока не освоил Oracle.
|
|