Jak přepsat dotaz, aby si nevynutil gargabe collection?

15 views
Skip to first unread message

Ing. Zdeněk Havránek, HAF

unread,
Sep 23, 2021, 3:41:41 AM9/23/21
to Firebird (CZ)
Dobrý den, mám tabulku a v ní jediný potřebný index
CREATE TABLE FORCE (
    PRODUCT_FORCE  INTEGER NOT NULL,
    "TIME"         FLOAT NOT NULL,
    FORCE          FLOAT,
    "POSITION"     FLOAT
);
ALTER TABLE FORCE ADD CONSTRAINT PK_FORCE PRIMARY KEY (PRODUCT_FORCE, "TIME");
Na konci odpolední směny se provádí masivní mazání z tabulky FORCE, následuje gbak s defaultním gargabe collection a vypnutí počítače. Pokud noční údržba zhavaruje, zůstane databáze v neuklizeném stavu a pak ranní dotaz
select min(PRODUCT_FORCE) from FORCE
si vynutí gargabe collect a obsluha u stroje čeká...

Je možné nějak přepsat dotaz, aby si nevynutil gargabe collection?

Vše běží na slabém HW (vodotěsný UNIQ PC150, Dual Core Intel Atom D525 na 1,8 GHz, 2 GB RAM, 2,5" HDD 320 GB), Windows 7, Firebird 2.5.x (asi 2.5.2), do tabulky FORCE měsíčně přibývá 6 GB dat (pokud se neuklízí).

Při běžné práci se do tabulky FORCE již jen vkládají nové záznamy a zobrazují se z ní grafy na základě dotazu
select "TIME",FORCE,"POSITION" FROM FORCE WHERE PRODUCT_FORCE = :PARAMETR ORDER BY "TIME"
-- 
S pozdravem

Zdeněk Havránek
777 717 303



  

Jiří Činčura

unread,
Sep 23, 2021, 4:11:40 AM9/23/21
to fireb...@googlegroups.com
Nabizi se otazka, proc ten nocni backup zhavaruje a jestli by nebylo lepsi tohle poresit.

Napada me nicmene ve firebird.conf zmenit GCPolicy. Sice to neni zmena toho dotazu, ale aspon by se mohl vypnout ten kooperativni mod.

--
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/

Ivan Přenosil

unread,
Sep 23, 2021, 5:28:45 AM9/23/21
to fireb...@googlegroups.com
Garbage collection se dá potlačit parametrem v Connectu (ne všechny
komponenty to ale umí),
ale moc to asi nepomůže protože ten SELECT stejně bude ty smazané řádky
procházet.

I.

Robert Kindl

unread,
Sep 23, 2021, 6:44:08 AM9/23/21
to fireb...@googlegroups.com
Co spustit ten dotaz (a tim ten garbage) collection jeste v noci nez prijde prvni uzivatel do prace?
 
Rob
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „Firebird (CZ)“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu firebird_cz...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/firebird_cz/f3de4c43-a87d-b4f9-5d85-f85f0ce9bbc7%40hafici.eu.

Ing. Zdeněk Havránek, HAF

unread,
Sep 23, 2021, 9:27:06 AM9/23/21
to fireb...@googlegroups.com
Vypadá, že "GCPolicy = background" by mohlo pomoci.
Teď tedy ještě při běžném vypínání v noci po konci odpolední směny
počkat na dokončení údržby, aby aplikace nevypla počítač předčasně.

S pozdravem

Zdeněk Havránek
777 717 303

Dne 23.9.2021 v 10:11 Jiří Činčura napsal(a):

Ivan Přenosil

unread,
Sep 23, 2021, 9:33:41 AM9/23/21
to fireb...@googlegroups.com
S tímto nastavením GC ale vůbec nemáte jistotu že se během backupu
všechny staré verze opravdu vyčistí.
Měl byste dělat backup s vypnutým GC a čištění dělat samostatným SWEEPem.

I.

Dne 23.09.2021 v 15:27 Ing. Zdeněk Havránek, HAF napsal(a):

Ing. Zdeněk Havránek, HAF

unread,
Sep 23, 2021, 9:47:56 AM9/23/21
to fireb...@googlegroups.com
Překvapivě to vypadá, že Delphi XE4 FireDAC komponenta TADIBBackup bez boNoGarbageCollect v Options, počká na dokončení gargabe.
Chová se stejně jako s defaultní "GCPolicy =combined".
  • zazálohuje metadata
  • (zahájí úklid a) počká na dokončení úklidu
  • zazálohuje data z tabulek
HAF

Dne 23.9.2021 v 15:33 Ivan Přenosil napsal(a):
Reply all
Reply to author
Forward
0 new messages