![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Насчет удаленных записей в Interbase [D5, IB6.x]
Malder © (2002-03-02 17:35:00)Знаю, что в Interbase (да и в большинстве сетевых баз данных) удаленные записи физически из файла не удаляются, а просто помечаются как удаленнные. В связи с этим вопрос: можно ли как-то работать с этими помеченными на удаление записями ? Например, просматривать их, окончательно удалять и т.д. ?
P.S. И в догонку вопрос: как сделать Pack для таблицы Interbase, то есть очистить ее от удаленных записей ?
ОлегЕ (2002-03-13 12:09:00) [1]В IB есть рараметр - Sweep Interval - он указывает серверу через сколько транзакций "очищать" удаленные записи, но можно выполнить SWEEP по своему желанию. Размер базы при этом не изменяется, место резервируется под новые записи. Действительно, только Backup/Restore может уменьшить размер.
fnatali (2002-03-13 11:37:00) [2]>Bogatchev (13.03.02 11:11)
Да, ты сильно не в тему. Надо открывать отдельную ветку на новый вопрос.
Для упаковки таблицы посмотри dbiPackTable
Bogatchev (2002-03-13 11:11:00) [3]Может я не в тему, но спрошу.
Есть аналогичная проблема с записями в Парадоксе. Записи удаляются, а объём таблицы ни на грам не меняется.
Как заставить его работать по человечески.
(Удаляю с помошью метода Table1.Delete; )
Suntechnic (2002-03-04 07:11:00) [4]>Malder (03.03.02 20:12)
>почему Interbase сразу не стирает записи в *.gdb?
Ты когда файл с HDD удаляешь каждый раз дефрагментацию диска запускаешь?
Prog_SKV1 (2002-03-04 06:43:00) [5]>Malder
А как восстановить удаленные записи ?
Если и это невозможно, то вообще непонятно, почему Interbase сразу не стирает записи в *.gdb
На больших базах данных, ну к примеру 1Ггб и более
из таблицы в 10 млн. записей , физическое удаление 500 тыс. записей может занять несколько десятков часов в зависимости от сервака,а пометочка в полянке что они удалены значительно быстрее
поэтому IB их помечает а не удаляет.
evgeg (2002-03-03 21:24:00) [6]Подробно механизм версионности описывается в статье на ib.demo.ru. Советую почитать - многие вопросы отпадут.
Anatoly Podgoretsky (2002-03-03 20:56:00) [7]Backup/Restore
Malder (2002-03-03 20:12:00) [8]А как восстановить удаленные записи ?
Если и это невозможно, то вообще непонятно, почему Interbase сразу не стирает записи в *.gdb
[NIKEL] (2002-03-03 16:56:00) [9]если тока напрямую gdb файл править\смотреть, но это ж надо его формат знать :)
Malder (2002-03-03 12:31:00) [10]Я все понимаю.
Но коли записи не удаляются, значит они остаются =)
А значит с ними как то можно работать, наверное.
Может не с помощью Interbase, а как нибудь по другому....
Вот вопрос. А как восстановить удаленные записи ?
Anatoly Podgoretsky (2002-03-03 11:49:00) [11]Из наиболее известных баз, только dBase поддерживает работу с удаленными записями, остальные нет.
Упаковка есть практически во всех базах, это Pack, Restructure, Compacting или Backup/Restore для Интербейс.
evgeg (2002-03-03 01:42:00) [12]> В связи с этим вопрос: можно ли как-то работать с этими помеченными на удаление записями ? Например, просматривать их, окончательно удалять и т.д. ?
Работать, просматривать и т. п. нельзя. После завершения транзакции они не существуют для пользователя.
Иван Шихалев (2002-03-03 00:58:00) [13]Ну... Называть формат при открытых исходниках самого сервера закрытым - несколько некорректно. А то, что IB - версионник, так это его производители (и те и другие) утверждают.
Anatoly Podgoretsky (2002-03-02 18:09:00) [14]Это не твоя головная боль, а Интербейса. И с чего ты решил, что там что то помечается, формат то закрыт, да и к базе как правило прямого доступа нет.
Иван Шихалев (2002-03-02 18:07:00) [15]Насколько я помню, работать с ними не положено. А чтобы сделать Pack нужно использовать Backup/Restore.