🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Firebird - "puchn�ca" baza danych

#82487
From: Stregor
Date: Wed, 04 Feb 2015 13:47
62 lines
3661 bytes
>> 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�"?

To znaczy, że zdarza się, że select z tych tabel daje dobre dane, a 
widać kolosalne spowolnienie podczas backupowania / restorowania takiej 
tabeli. Nieco analogicznie do znaku #0 w bloku pamięci rzutowanego na 
PChar - odczytujesz do pierwszego znaku #0 mimo że blok jest dużo 
większy i dalej ma jakieś znaki.

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

Tabel jest > 100, tabele mają rekordów od 0 (sic!) do dziesiątek 
tysięcy. Pisałem, że psują się te tabele w zasadzie losowo, nie byłem w 
stanie do teraz ustalić jakiegokolwiek klucza, typu "psują się tabele x, 
y i czasem z"

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

Jeśli uszkodzone byłyby na przykład transakcje w limbo, wtedy 
gbak/grestore by je pominął i obszar bazy by się zmniejszył. Lub z kilku 
innych przyczyn, niestety tak się nie dzieje.

> A te dane z uszkodzonych tabel nie s� nikomu potrzebne?

Czasem są, czasem nie są. Dziwne pytanie.
Jak Ci woda piwnicę zaleje to czasem zniszczy się coś potrzebnego, a 
czasem rupieć, prawda?

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

Tak. I dziękuję.

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

nie bardzo wyobrażam sobie, jak bym miał to stwierdzić

P.S. ustaw sobie stronę kodową w czytniku :)

-- 
Pozdrawiam,
Stregor
Technical Details
Message-ID: <54d2230f$0$2201$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <54d07a5b$0$2184$65785112@news.neostrada.pl> <mat5uu$gqq$1@node1.news.atman.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!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Wed, 04 Feb 2015 14:47:58 +0100
From: Stregor <stregor@wytnij.to.gmail.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: Firebird - "puchn�ca" baza danych
References: <54d07a5b$0$2184$65785112@news.neostrada.pl> <mat5uu$gqq$1@node1.news.atman.pl>
In-Reply-To: <mat5uu$gqq$1@node1.news.atman.pl>
Lines: 62
Message-ID: <54d2230f$0$2201$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: apn-77-114-106-81.dynamic.gprs.plus.pl
X-Trace: 1423057679 unt-rea-a-02.news.neostrada.pl 2201 77.114.106.81:52164
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit