Firebird Veritabanını tam olarak boşaltma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Firebird Veritabanını tam olarak boşaltma
İçerisinde 5 tane basit table bulunan bir firebird veritabanı dosyam var bütün kayıtlarını silmeme rağmen hala dosya boyutu olarak 65 Mb gözüküyor. Acaba bu sildiklerimi fiziksel olarak silmiyor mu? Veritabanı dosyamı nasıl gerçek manada temizlerim? Yardımcı olan olursa sevinirim.
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: Firebird Veritabanını tam olarak boşaltma
Backup-Restore yapın
Re: Firebird Veritabanını tam olarak boşaltma
Nasıl yani? Firebird veritabanında basit bir Shrink işlemini gerçekleştiremiyor muyuz? Firebird diye ölenler buna ne cevap verecek? Firebird küçük ve orta boy sistemler için idare eder. Ama kurumsal düzeyde idare edemez.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: Firebird Veritabanını tam olarak boşaltma
habikus yazdı:İçerisinde 5 tane basit table bulunan bir firebird veritabanı dosyam var bütün kayıtlarını silmeme rağmen hala dosya boyutu olarak 65 Mb gözüküyor. Acaba bu sildiklerimi fiziksel olarak silmiyor mu? Veritabanı dosyamı nasıl gerçek manada temizlerim? Yardımcı olan olursa sevinirim.
Veritabanindan sildiginiz dosyalar aninda fiziksel dosyadan silinmez. Bunu firebird arka planda belirli araliklarla otomatik yapar. Firebird degil de kendiniz yapmak isterseniz Sweep islemi ile yapabilirsiniz. Backup - Restore islemi de benzer etkiyi yapar.
http://www.firebirdsql.org/manual/gfix- ... eping.html
Re: Firebird Veritabanını tam olarak boşaltma
Selamlar,
Firebird'ün yapısında Record Versioning vardır ve siz herhangi bir Update yaptığınızda, Firebird gider eski kaydı işaretler ve yeni bir kayıt oluşturur. Yani aslında siz önceki kaydı gerçekten update yapmazsınız. Silme işleminde de kaydı silmez, silindi diye işaret koyar. Böylelikle record versioning işlemiyle hem DB'nin kayıtlarını tek tek geriye doğru tutar.
Bu shrink olayı, diğer DB üreticilerinde çok elzem olmak ile birlikte, illa shrink edeceğim derseniz, sadettinpolat arkadaşımızın söylediği gibi Sweep işlemiyle gerçekleştirebilirsiniz. Normalde bunu FB server, eğer ayarını değiştirmezseniz 20,000 Kayıtta bir otomatik olarak yapar.
Vereceğim Link'te bu shrink olayı ve Database Page yapısının nasıl işlediği konusunda özet ve anlaşılır bir bilgi bulunmaktadır.
http://www.ibphoenix.com/resources/docu ... ign/doc_23
Orada da bahsedildiği gibi, Pageleri silmek, yeniden kullanmaktan daha maliyetli olduğundan, FB geliştirmenleri, silinen veya eski version recordları belirli aralıklarda kullanırlar. Bunun dışında Backup/Restore yaptığınızda aradaki bu eski version kayıtlar alınmayacağından (defaultta alma dendiği için) DB Size küçülür.
Kolay Gelsin
Adnan
Firebird'ün yapısında Record Versioning vardır ve siz herhangi bir Update yaptığınızda, Firebird gider eski kaydı işaretler ve yeni bir kayıt oluşturur. Yani aslında siz önceki kaydı gerçekten update yapmazsınız. Silme işleminde de kaydı silmez, silindi diye işaret koyar. Böylelikle record versioning işlemiyle hem DB'nin kayıtlarını tek tek geriye doğru tutar.
Bu shrink olayı, diğer DB üreticilerinde çok elzem olmak ile birlikte, illa shrink edeceğim derseniz, sadettinpolat arkadaşımızın söylediği gibi Sweep işlemiyle gerçekleştirebilirsiniz. Normalde bunu FB server, eğer ayarını değiştirmezseniz 20,000 Kayıtta bir otomatik olarak yapar.
Vereceğim Link'te bu shrink olayı ve Database Page yapısının nasıl işlediği konusunda özet ve anlaşılır bir bilgi bulunmaktadır.
http://www.ibphoenix.com/resources/docu ... ign/doc_23
Orada da bahsedildiği gibi, Pageleri silmek, yeniden kullanmaktan daha maliyetli olduğundan, FB geliştirmenleri, silinen veya eski version recordları belirli aralıklarda kullanırlar. Bunun dışında Backup/Restore yaptığınızda aradaki bu eski version kayıtlar alınmayacağından (defaultta alma dendiği için) DB Size küçülür.
Kolay Gelsin
Adnan
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Re: Firebird Veritabanını tam olarak boşaltma
Manual temizleme
fbird BIN klasörüne dos prompt'dan gir
GFIX.EXE dos'tan adını yazarak çalıştır
alttaki kodu vt adını yolunu şifreni yaz, kod cebine gelsin. :p
fbird BIN klasörüne dos prompt'dan gir
GFIX.EXE dos'tan adını yazarak çalıştır
alttaki kodu vt adını yolunu şifreni yaz, kod cebine gelsin. :p
Kod: Tümünü seç
gfix –sweep c:\test1.fdb -user SYSDBA –pas masterkey
[code/]
bu komut ile elle süpürme
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;