Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Размер базы   Найти похожие ветки 

 
scur   (2010-02-26 08:59) [0]

Привет всем мастерам !!!

Вопрос следующий:
Есть база состящая из одной таблици и 5000 записей в ней, размер примерно 90 Мб, так вот после удаления всех записей размер базы остаётся без изменений, в чём может быть проблема или так и должно быть, или я делаю что то не правильно.

Удаляю так:

AdoTabele.Recno:=1;
AdoTabele.Delete;


 
12 ©   (2010-02-26 09:09) [1]

во многих СУБД так и должно быть, а в некоторых - нет.
А в особо секретных, как в Вашем случае, возможно и расширение


 
scur   (2010-02-26 09:19) [2]


> 12 ©   (26.02.10 09:09) [1]


Спасибо.

Если интересно то база созданна в Microsoft Office Access 2007.
К стати после пересохранения в Access она занимает 270 Кб.


 
Sergey13 ©   (2010-02-26 09:30) [3]

> [2] scur   (26.02.10 09:19)

Если записи будут появляться снова, то никакого смысла в сжимании нет. Скорее даже вред, т.к. под расширение файла БД будут тратиться лишние ресурсы. Небольшие конечно, но все таки.


 
sniknik ©   (2010-02-26 09:31) [4]

> в чём может быть проблема
вовсе не в размере базы, а например вот в этом...
> AdoTabele.Recno:=1;
> AdoTabele.Delete;


> К стати после пересохранения в Access она занимает 270 Кб.
там есть пункт "упаковка и восстановление", ну или что то типа, а что для этого сделал ты? вот и результат - ничего. аналогично.


 
sniknik ©   (2010-02-26 09:39) [5]

> Небольшие конечно, но все таки.
файловые операции как раз одни из самых ресурсоемких, почему и вся эта "байда" с размерами. т.к. разработчики баз всеми силами пытались избегать лишних.
и как иногда кажется зря... волнует нынешних "программистов" вовсе не скорость (с ней они попросту борются, как понимаешь глядя на их методы работы) а размер! (что то другое тоже маленькое и должно соответствовать?)


 
scur   (2010-02-26 09:41) [6]


> sniknik ©   (26.02.10 09:31) [4]



> вовсе не в размере базы, а например вот в этом...
> AdoTabele.Recno:=1;
> AdoTabele.Delete;


данный код всавляется в цикл по количеству записей, а результат всёравно пустая база.


> там есть пункт "упаковка и восстановление", ну или что то
> типа, а что для этого сделал ты? вот и результат - ничего.
>  аналогично.


А как это жожно сделать из Delphi, и возможно ли это?


 
scur   (2010-02-26 09:43) [7]


> Sergey13 ©


> sniknik ©


Идея закючается в переносимости и компактности базы.


 
sniknik ©   (2010-02-26 09:51) [8]

ну вот, я же говорил.
неправильные методы работы его совершенно не волнуют, будет продолжать (результат то то одинаков, а то что идет к соседнему подъезду в обратную сторону обходя квартал неважно), но зато размер... больное место. а покажи как, так он не думая еще и операцию упаковки поле каждого действия "вляпает".


 
Sergey13 ©   (2010-02-26 09:52) [9]

> [7] scur   (26.02.10 09:43)

Ну так вот в аксесе сжал и переноси это файло. Зачем в программу то вставлять эту РАЗОВУЮ операцию?


 
scur   (2010-02-26 10:35) [10]


> Sergey13 ©


Ну скажем ситуация следующая, предприятие провило инвентаризацию и очень большое количество оборудование списало, что привело к соответствующему удалению записей из базы. А теперь представим что база ветит не Мб, а Гб, и нам нужно за бекапить базу, то чтобы не сохранять левый объём, мне каждый раз понадобиться вставлять её в аксес, интересный метод оптимизации, может кому то он и подойдёт, но не мне.

Но на вопрос так и не ответили можно ли это сделать (упаковать) из Delphi, подскажите или ссылочку на литературу плиз.


 
Sergey13 ©   (2010-02-26 10:45) [11]

> [10] scur   (26.02.10 10:35)

Во первых. Гигабайт - это детский лепет для БД предприятия.
Во вторых. Твоя БД из одной таблицы в аксесе - это даже не детский лепет, а просто пшик. Тем более с AdoTabele.Delete в цикле.
В третьих. Бекап это не обязательно простое копирование файлов и при нем необязательно "сохраняется левый объём".

Ты решай свои локальные текущие задачи и меньше думай о "глобальном". Это пока не твои проблемы.


 
Плохиш ©   (2010-02-26 10:53) [12]


> Ну скажем ситуация следующая, предприятие

Предприятию стоит нанять программиста.


 
12 ©   (2010-02-26 10:55) [13]

http://www.sql.ru/faq/faq_topic.aspx?fid=155


 
scur   (2010-02-26 10:58) [14]

Тема закрыта


 
Anatoly Podgoretsky ©   (2010-02-26 11:15) [15]


> во многих СУБД так и должно быть, а в некоторых - нет.

Назови хоть одну СУБД, которая проводит упаковку базы после каждого удаления.


 
12 ©   (2010-02-26 11:17) [16]

плоский файл


 
12 ©   (2010-02-26 11:21) [17]

хотя и признаю, что это не субд, вообщем-то
но вот доводилось переписывать(заново писать) одну программку, еще на асм под дос писанную, где данные были ~ 650 мб файла txt


 
Anatoly Podgoretsky ©   (2010-02-26 11:56) [18]

> 12  (26.02.2010 11:21:17)  [17]

И удаление одной записи из файла занимало 10+ секунд.


 
12 ©   (2010-02-26 12:07) [19]

ну где-то так или все же поменьше, там хитро что-то вроде индексов в соседнем файле валялось. 93 год программка и с того времени копили :)



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

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.083 c
15-1263990046
fford
2010-01-20 15:20
2010.08.27
что меньше нагружает сервер


11-1221347021
Лотос
2008-09-14 03:03
2010.08.27
Папка из OpenSaveDialog


6-1214817204
dima_q
2008-06-30 13:13
2010.08.27
XMLHTTP


2-1270199599
AlexCAHEK
2010-04-02 13:13
2010.08.27
TImage


2-1267276280
lewka
2010-02-27 16:11
2010.08.27
Работа с архиватором