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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.06 c
2-1269262492
Guz
2010-03-22 15:54
2010.08.27
Delphi 7, реестр.


15-1263990046
fford
2010-01-20 15:20
2010.08.27
что меньше нагружает сервер


2-1274965464
integer
2010-05-27 17:04
2010.08.27
подключитсо к nokia через usb и получить текст всех СМС


15-1271847638
Scot Storch
2010-04-21 15:00
2010.08.27
БД кожгалантерейного магазина


2-1271062611
vastani
2010-04-12 12:56
2010.08.27
BASM в DELPHI, проблема с Offset`ами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский