Article View: pl.comp.lang.delphi.bazy-danych
Article #82484Re: Firebird - "puchnąca" baza danych
From: J-23
Date: Wed, 04 Feb 2015 10:15
Date: Wed, 04 Feb 2015 10:15
57 lines
3550 bytes
3550 bytes
W dniu 03.02.2015 o 08:35, Stregor pisze: > Cześć. > > Spotkał się ktoś z Was z takim zjawiskiem? > FB 2.5, baza > 100 tabel. Działa sobie normalnie, do pewnego czasu, a > nagle zaczyna "dziczeć" - wielkość pliku .fdb rośnie bardzo szybko, tak > samo wielkość .fbk. Zwykle wygląda to tak, że jedna (lub kilka) z tabel > jest "pompowana" zerami lub losowymi znakami, ale tylko w pliku. W > czasie robienia operacji na tabeli typu SELECT, tabela przez jakiś czas > jeszcze jest możliwa do odczytania, choć ogólnie wydajność całej bazy > spada, a tej tabeli - drastycznie spada. > > Problem potęgowany jest faktem, że taka baza może być użytkowana jeszcze > czasem przez długi czas, aż dostęp do niej stanie się całkowicie > niemożliwy. I wtedy okazuje się, że na przykład kopie zapasowe też są > błędne - już od roku... > > Sztuczki typu gbak/grestore z wszelkimi możliwymi ustawieniami > przełączników nie dają rezultatu. Jedyną możliwą metodą na naprawę którą > obecnie znam, to przepisanie zawartości tabel do nowego, świeżego pliku, > z pominięciem uszkodzonych tabel. > > Problem jest stosunkowo rzadki, może jeden na 1000 przypadków, może > jeden na 500, ale jest to sprawa na tyle poważna, że zaczyna niepokoić. > > Czy Firebird jest na jakimś podstawowym poziomie "felerny" i wrażliwy na > jakieś rzeczy typu antywirus? > Czy ja coś robię w programie bardzo niedobrego, typu "trzymasz > connection do bazy otwarty cały czas? nie idź tą drogą!" > > Dodam, że używam IBX, i, niestety, Firebird "udaje" Interbase'a za > pomocą generowania gds32.dll. Delphi XE6, o ile to ma znaczenie. > > Wszelkie rady, sugestie, opinie bardzo chętnie poznam. > Za to że jest duży plik bazy fireberda pomimo ilości danych odpowiada jego garbage collection. A mianowicie baza jest tak zbudowana że alokuje dość dużą ilość pamięci w stosunku do ilości danych. Pomimo że np wyrzucimy część danych z bazy wielkość pliku albo się nie zmniejszy wcale albo zrobi to nie znacznie. Powodem tego jest to że Fireberd oznacza te miejsca jako puste nie zmniejszając pliku tak by zapewnić mu szybszy dostęp do zapisu nowych danych. Co do typowo Twojego problemu to będzie ciężko coś konkretnego doradzić odnośnie zwalniania bo nie wiadomu w jaki sposób i jakie dane przechowujesz w problematycznych tabelach. Sprawdź czy masz dobrze indeksy na początek w tych tabelach porobione. Puchnięciem bazy bym się nie przejmował bo to nie to jest Twoim problemem. Ja mam obecnie bazy po 750 GB Pozdrawiam
Technical Details
Message-ID:
<masrgi$78h$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<54d07a5b$0$2184$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: J-23 <baczeklu@o2.pl> Newsgroups: pl.comp.lang.delphi.bazy-danych Subject: Re: Firebird - "puchnąca" baza danych Date: Wed, 04 Feb 2015 11:15:45 +0100 Organization: ATMAN - ATM S.A. Lines: 57 Message-ID: <masrgi$78h$1@node2.news.atman.pl> References: <54d07a5b$0$2184$65785112@news.neostrada.pl> NNTP-Posting-Host: 77-255-42-51.adsl.inetia.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1423044946 7441 77.255.42.51 (4 Feb 2015 10:15:46 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Wed, 4 Feb 2015 10:15:46 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 In-Reply-To: <54d07a5b$0$2184$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit