🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Firebird - "puchnąca" baza danych

#82489
From: ALO
Date: Wed, 04 Feb 2015 20:49
89 lines
4154 bytes
> 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.
>

A widzisz ... nieprezycyjny opis dałeś (albo coś przeoczyłem) ... rozumiem, 
że puchną pola BLOB a to jest zupełnie inna bajka.
Obstawiam błąd programu, która właśnie tyle zapisuje do bloba ale 
rewolucyjnej czujności nigdy dość.


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

No bo jak ma gigantyczne bloby to i spadać musi.

> Tabel jest > 100, tabele mają rekordów od 0 (sic!) do dziesiątek tysięcy.

Czyli tabele są prawie puste.

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

Jeśli we wszystkich tabelach używasz do zapisu Blobów tej samej procedury w 
programie to ja najpierw zająłbym się tą procedurą.

Nie wiem jak piszesz do tegoż bloba, pokaż ten fragment programu.
Może nie zerujesz np. stringa, którego zawsze zapisujesz, może jakieś 
nieszczęśliwe rzutowanie.
Sprawdzaj ile faktycznie zapisujesz w programie i daj komunikat jak coś nie 
pasuje.

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

Jak zaleje mi moją piwnicę to nie ważne, ale sąsiada z mojego kranu to 
zawsze jest mu potrzebne wszystko co mu się właśnie zalało.

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

Nie wiem jak wersja FB2.5 ale na poprzednich wersjach nigdy mi taki problem 
nie wystąpił, mimo, że klienci różne "fajne" rzeczy z komputerami robią.

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

Nic z tych rzeczy, nadal obstawiam, że właśnie to jest zapisywane co jest w 
bazie i niejako FB nie ma nic do tego, on wykonuje posłusznie żądane 
operacje.

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


piszę z głowy czyli z niczego

create exception E_RANYBOSKIE 'Wielki blob';

CREATE TRIGGER TABELA_BEFORE_INSERT FOR TABELA
  ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (CHAR_LENGTH(NEW.TABELA_BLOB) > 10000) THEN
      EXCEPTION E_RANYBOSKIE
END

na wszelki wypadek też dla UPDATE

dodaj do tabeli pole na długość bloba, wtedy w TRIGGERZE bedziesz mógł 
sprawdzzić czy

CHAR_LENGTH(NEW.TABELA_BLOB) = NEW.TABELA_BLOBLEN

-mh 
Technical Details
Message-ID: <mau0l7$f8r$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> <mat5uu$gqq$1@node1.news.atman.pl> <54d2230f$0$2201$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 21:49:45 +0100
Organization: ATMAN - ATM S.A.
Lines: 90
Message-ID: <mau0l7$f8r$1@node1.news.atman.pl>
References: <54d07a5b$0$2184$65785112@news.neostrada.pl> <mat5uu$gqq$1@node1.news.atman.pl> <54d2230f$0$2201$65785112@news.neostrada.pl>
NNTP-Posting-Host: 109241254011.unknown.vectranet.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1423082983 15643 109.241.254.11 (4 Feb 2015 20:49:43 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Wed, 4 Feb 2015 20:49:43 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit