🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82484

Re: Firebird - "puchnąca" baza danych

#82484
From: J-23
Date: Wed, 04 Feb 2015 10:15
57 lines
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-mail
References: <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