🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Firebird - "puchnąca" baza danych

#82486
From: ALO
Date: Wed, 04 Feb 2015 13:13
56 lines
3162 bytes
Użytkownik "Stregor" <stregor@wytnij.to.gmail.com> napisał w wiadomości 
news:54d07a5b$0$2184$65785112@news.neostrada.pl...
> Cześć.
>
> Spotkał się ktoś z Was z takim zjawiskiem?

Nie

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

Co to znaczy "...ale tylko w pliku .." w jakim pliku, a gdzie jeszcze można 
"pompować"?

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

Poprosze plan tego selecta. Ile tabela ma rekordów?

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

Niby czemu miałyby dać jakiś rezultat, baza nie ma "pustych" obszarów tylko 
tabele wypełnione być może zerami ale zera są tak samo poprawne jak jedynki.

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

A te dane z uszkodzonych tabel nie są nikomu potrzebne?

> 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ć.

Co jest przypadkiem? Klient używający bazy (gratuluje kilku tysięcy 
klientów).

> Czy ja coś robię w programie bardzo niedobrego, typu "trzymasz connection 
> do bazy otwarty cały czas? nie idź tą drogą!"

Tak bym obstawiał, sprawdź wszystkie triggery zapisujące do inkryminowanych 
tabel.

Dodaj trigger before insert do tych tabel i wygeneruj w nim wyjątek gdy 
dochodzio do zapiu owych "zer".

-mh 
Technical Details
Message-ID: <mat5uu$gqq$1@node1.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: "ALO" <alcedo@onet.pl>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: Firebird - "puchnąca" baza danych
Date: Wed, 4 Feb 2015 14:13:59 +0100
Organization: ATMAN - ATM S.A.
Lines: 58
Message-ID: <mat5uu$gqq$1@node1.news.atman.pl>
References: <54d07a5b$0$2184$65785112@news.neostrada.pl>
NNTP-Posting-Host: 188.123.215.195
X-Trace: node1.news.atman.pl 1423055646 17242 188.123.215.195 (4 Feb 2015 13:14:06 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Wed, 4 Feb 2015 13:14:06 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-RFC2646: Format=Flowed; Response
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit