Firebird Kaytları tamamen silme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Firebird Kaytları tamamen silme
S.A
Firebird veritabanından kayıt sildiğimde tamamen silinmesi için ne yapmalıyım. Şöyle açıklarsam sorum daha net anlaşılacak. 50 MB lık veritabanımda 50000 e yakın kaydımı siliyorum. Ama dosya boyutum yine 50 mb olarak kalıyor. Firebird veritabanında backup restore yap demeyin. Çünkü bu işlemin delphide kod ile yaplması gerekiyor. Ya da tamamen silmenin başka bir yöntemi varsa yardımcı olursanız sevinirim...
Firebird veritabanından kayıt sildiğimde tamamen silinmesi için ne yapmalıyım. Şöyle açıklarsam sorum daha net anlaşılacak. 50 MB lık veritabanımda 50000 e yakın kaydımı siliyorum. Ama dosya boyutum yine 50 mb olarak kalıyor. Firebird veritabanında backup restore yap demeyin. Çünkü bu işlemin delphide kod ile yaplması gerekiyor. Ya da tamamen silmenin başka bir yöntemi varsa yardımcı olursanız sevinirim...
ibconsole dan sweep işlemini denermisin
ibconsole dan sweep işlemini denermisin
http://www.ibphoenix.com/main.nfs?a=ibp ... p_tip_perf burdaki sweep olayı işini görür . kolay gelsin
http://www.ibphoenix.com/main.nfs?a=ibp ... p_tip_perf burdaki sweep olayı işini görür . kolay gelsin
aşağıdaki komutu msdos komutunda yazıp bırakırsan müşteriye execcommand ile her programı kapataşında onclose olayında bu autoexec dosyasını çalıştırırsın. böylece otomatik olarak sweep yapmışt olur.
bunu geliştirebilirsinde veya kendin otomatik çalıştırabilirsin
gerisi hayal gücüne kalmış.
bunu geliştirebilirsinde veya kendin otomatik çalıştırabilirsin

Kod: Tümünü seç
gfix -sweep -user SYSDBA -password masterkey C:tnsbad.gdb
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
:)
sweep garbage yani çöp haline gelmiş kayıtları temizlemiyormuydu. ben yanlışmı biliyorum. veya silinen kayıtlar çöp haline gelmiyormu . belki bir time limiti vardır. belli bir zaman sonra falanmı çöp haline geliyor silinmiş kayıtlarını . yanlışmı biliyoruz yardımcı olun lütfen 

sql bir veritabanında bir kaydı sildiğiniz anda gerçekten ve kesinlikle kayıt silinir. Veritabanının boyutunun küçülmemesi kaydın gerçekten silinmediği anlamına gelmiyor... Kayıt geri alınamayacak şekilde silinmiştir. Veritabanı boyutunu küçültmek için var olan yöntemlerden birini delphi içinden kodla yaptırmaya çalışmalısınız....
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

Merhaba ,
Firebird de, dosya boyutunu küçültmenin backup-restore den başka yöntemi yokmudur , aynı sorunu MySQL nin InnoDB türü tablolarında yaşıyorum zannedersem Transaction la ilgili bir olay bu. peki bu dosyanın boyutu arttıktan sonra kayıtları sildiğimizde kayıtların geri gelmemek üzere silinmesine rağmen dosya boyutunun küçülmemesinin sebebi nedir ? Firebird yada MySQl neden bize alanımızı geri vermez?
iyi çalışmalar.
Firebird de, dosya boyutunu küçültmenin backup-restore den başka yöntemi yokmudur , aynı sorunu MySQL nin InnoDB türü tablolarında yaşıyorum zannedersem Transaction la ilgili bir olay bu. peki bu dosyanın boyutu arttıktan sonra kayıtları sildiğimizde kayıtların geri gelmemek üzere silinmesine rağmen dosya boyutunun küçülmemesinin sebebi nedir ? Firebird yada MySQl neden bize alanımızı geri vermez?
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
bunun sebebi bildiğim kadarıyla şöyle.vkamadan yazdı:peki bu dosyanın boyutu arttıktan sonra kayıtları sildiğimizde kayıtların geri gelmemek üzere silinmesine rağmen dosya boyutunun küçülmemesinin sebebi nedir ? Firebird yada MySQl neden bize alanımızı geri vermez?
iyi çalışmalar.
1 milyon tane sandalyeniz olduğunu düşünün. hepsi boş. sandalyelerde henüz kimse oturmuyor. daha sonra sırasıyla her sandalyeye birilerinin oturduğunu düşünün. Bu şekilde 1 milyon kişinin sırayla sandalyeye oturduğunu varsayalım. daha sonra 100. sandalyede oturan kişiyi sandalyesinden kaldıralım.
bu durumda yapmamız gereken nedir?
ya geriye kalan 999.900 kişiye herkes bir önceki sandalyeye geçsin demek ki bu da 1 kişiden dolayı 999.900 kişinin hareket etmesi demektir veya sadece 100. sandalyeye oturan kişi kalktı diye bir işaret koymaktır. daha sonra yapılacak backup restore işleminde ise kişiler en baştan başlamak üzere tekrar sandalyelere otururlar.
yaptığımız araştırmalar sonucunca backup ve restore işlemi haricinde bir işlemin olmadığını tespit ettik, mecbur böyle yapacağız anladığım kadarıyla herkes bu yolu kullanıyor.
iyi çalışmalar.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr