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

Вниз

Удаление строк в Interbase-таблицах   Найти похожие ветки 

 
Электрочайник   (2003-01-18 10:44) [0]

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


 
Delirium^.Tremens   (2003-01-18 10:49) [1]

http://www.ibase.ru
искать темы про Backup -> Restore


 
Электрочайник   (2003-01-18 12:08) [2]

Звиняйте, конечно, наверное я туплю, но я не могу сделать BackUp даже из Server Manager. Вернее он делается, бэкап появляется, но размер основного файла не меняется :( Спасите пожалуйста и скажите, какие надо проставить галочки, чтобы он наконец-таки удалил все к едрене-фене 8-0


 
Delirium^.Tremens   (2003-01-18 12:12) [3]

В дневнике у себя галочки поставь.
После Backup следут Restore


 
kaif   (2003-01-18 14:56) [4]

Перед Restore overwrite советую сделать все же копиию файла базы, если этот Restore делается в первый раз. Иногда из-за ошибок в базе Restore может не получиться.


 
Big_Rom   (2003-01-18 15:48) [5]

а лучьше не делать Backup Restore, а подождать когда база рухнет :))


 
Alexandr   (2003-01-19 07:43) [6]

кретинам место в другой конфе


 
Troy   (2003-01-20 07:39) [7]

Вообще-то в Interbase данные хранятся на страницах и поэтому удаление одной или пары строк не повлечет за собой изменение размера базы. Не стоит волноваться по этому поводу, это нормальное состояние. Если же происходит массовое удаление данных, то размер базы тоже не будет уменьшаться. :) Просто страници данных, на которых были удалены записи, будут помечены как не используемые и в дальнейшем могут быть использованы вновь для других целей. Если же необходимо избавиться от неиспользуемых страниц, то, как говорилось раньше, необходимо сделать бакап с последующим рестором, база будет пересоздана заново, уже без лишних страниц.


 
filyandiya   (2003-01-20 08:45) [8]

всё что тута сказали...всё фигня!!!

на днях боролся с массовой вставкой / удалением - эмулировал временные таблицы файл базы растет и растет (с 2 мб до 100 и до бесконечности) - дело в том, что то что помеченно на удаление - не удалится, пока ЭТО не захотят просмотреть - это точно верно для FireBird 1.0, 1.5!
Они реально удалятся, т.е. на их место можно будет чегонибудь писать, ТОЛЬКО ПОСЛЕ ТОГО, КАК МЫ ИХ ЗАХОТИМ ПРОЧИТАТЬ.

Проверьте сами:

пусть есть таблица:

create MYTABLE(R1, R2, R3...)
create tmp_MYTABLE(UID primary key, R1, R2, R3, ...)
...
uid = 1 - например из генератора
insert into tmp_MYTABLE select :uid, A.* from MYTABLE where ...
delete from tmp_MYTABLE where UID = :uid

uid = 2 - например из генератора
insert into tmp_MYTABLE select :uid, A.* from MYTABLE where ...
delete from tmp_MYTABLE where UID = :uid

uid = 3 - например из генератора
insert into tmp_MYTABLE select :uid, A.* from MYTABLE where ...
delete from tmp_MYTABLE where UID = :uid
... и тогдалее - файл может расти до .... долго...и долго....без ограничений

select count(*) from tmp_MYTABLE ... хотябы - и файл некоторое время не растет! (но это наверное спасет не всегда).



 
filyandiya   (2003-01-20 08:48) [9]

....да ...я просто хотел сказать, что корень зла - это РЕАЛЬНО не удаленные записи:(


 
Johnmen   (2003-01-20 09:26) [10]

>filyandiya

О каком зле базар ??? Ты хоть бы книжку какую по IB прочел !


 
filyandiya   (2003-01-20 09:45) [11]

:) ну не зло....

...ты бы еще мультики предложил посмотреть


 
Anatoly Podgoretsky   (2003-01-20 10:40) [12]

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


 
filyandiya   (2003-01-20 10:48) [13]

2 filyandiya (20.01.03 09:45)
...ты бы еще мультики предложил посмотреть

Тебе как раз именно мультики, а не доки !


 
filyandiya   (2003-01-20 10:49) [14]

да бох с ним ...с удалением...

просто бывают случаи, когда записи помеченные на удаление...так ими и остаются... пока над ними не проведутся gbak или gfix

они висят себе и весят.....и ждут пока их ктонибудь прочитает...

просто как это сделать правильно? ...ну нету у меня мультиков по Interbase, а в FAQ нету ничего. Так select count(*) и делать?


 
filyandiya   (2003-01-20 11:01) [15]

Атака клонов !!!!!!!!!!!!!

Вспомнил-таки !!! Иду читать про сборку мусора.


 
Troy   (2003-01-20 12:22) [16]

Да кстати... Удаленные записи находятся в базе так же как и старые версии записей подвергшиеся изменению. После сборки мусора они удаляются, но размер базы останется такой же. С чем это связано? Да с тем, что выделенные страници под базу не освобождаются физически, а так же являются частью файла базы. И когда серверу понадобится дополнительное место под данные, то он воспользуется уже имеющимися пустыми (нераспределенными) страницами. Это ускоряет работу.
Я вот только не пойму, а зачем нужно чтобы база уменьшалась?



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

Форум: "Базы";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
8-15760
Дмитрий К.К.
2002-10-22 10:17
2003.02.06
Delphi и компьютерная система для распознавания номера автомобиля


4-15987
Delchiv
2002-12-13 22:02
2003.02.06
Клик в неактивном окне


14-15836
Hohol
2003-01-22 16:33
2003.02.06
Справочники .....


1-15704
V-Isa
2003-01-27 17:40
2003.02.06
Управление форматом ячеек StringGrid.


6-15786
Georg
2002-12-13 14:42
2003.02.06
CGI-приложения





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