Firebird Kaytları tamamen silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yazicih
Üye
Mesajlar: 92
Kayıt: 11 Şub 2005 02:10
Konum: Antalya

Firebird Kaytları tamamen silme

Mesaj gönderen yazicih »

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...
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

ibconsole dan sweep işlemini denermisin

Mesaj gönderen MakPRO »

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
yazicih
Üye
Mesajlar: 92
Kayıt: 11 Şub 2005 02:10
Konum: Antalya

Mesaj gönderen yazicih »

Dostum sağol da benim bu işi delphide kod ile halletmem gerekiyor. Müşteriye iboconsole u aç sweep yap diyemem
yazicih
Üye
Mesajlar: 92
Kayıt: 11 Şub 2005 02:10
Konum: Antalya

Mesaj gönderen yazicih »

Ayrıca sweep le olmadı ancak backup restore yapınca oluyor. ama delphden kod ile yapmam lazım :(
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

Mesaj gönderen MakPRO »

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ış.

Kod: Tümünü seç

gfix -sweep -user SYSDBA -password masterkey C:tnsbad.gdb 
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

interbase admin paletindeki ibbackupservice ve ibrestoreservice bileşenlerini kullanarak bu işlemi yapabilirsiniz...
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

:)

Mesaj gönderen MakPRO »

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 :)
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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... 8)
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

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.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

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.
bunun sebebi bildiğim kadarıyla şöyle.
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.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Dosya boyu küçültmenin en kolay yolu, veribanını tekrar oluşturmaktır bence.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Teşekkürler, iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
yazicih
Üye
Mesajlar: 92
Kayıt: 11 Şub 2005 02:10
Konum: Antalya

Mesaj gönderen yazicih »

sweep de işe yaramıyor zaten :(
fahrettin abi Veritabanı boyutunu küçültmek için var olan yöntemlerden birini delphi içinden kodla yaptırmaya çalışın demişsin. Bu yöntemlerden biri konusunda yardımcı olursan sevinirim
yazicih
Üye
Mesajlar: 92
Kayıt: 11 Şub 2005 02:10
Konum: Antalya

Mesaj gönderen yazicih »

Firebird veritabanının şişmesini engellemek için delphi ile koddan tam çözüm bulamadık hala. ( backup restore hariç ç ünkü bu işlrm uzun sürüyor her seferinde kullanıcaya backup restore yap diyemeyiz)
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

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.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla