Hirdetés

Új hozzászólás Aktív témák

  • kw3v865

    senior tag

    Sziasztok!

    Egy PostgreSQL-es kérdésem lenne, amin már régóta agyalok, mi lenne a megfelelő megoldás.
    - Adott egy - nem túl bonyolult - függvény, ami egy táblából dolgozik a lekérdezéshez és nagyon gyakran, 0,5 másodpercenként meg van hívva, tehát nagyon fontos, hogy igen gyors legyen (ez meg is valósul, tényleg nagyon gyors).
    - Ennek a táblának a tartalma dinamikusan változik, 20 másodpercenként frissül és alapvetően elég kevés rekordot tartalmaz pont azért, hogy gyors legyen.
    - A kérdés az, hogy milyen megoldással frissüljön ennek a táblának a tartalma úgy, hogy ne akadályozza a függvény futását, amely ezt a táblát használja.
    - 1. megoldás: a frissítés abból áll, hogy először TRUNCATE-elem a táblát
    TRUNCATE TABLE tábla;
    majd INSERT-álom a sorokat:
    INSERT INTO tábla SELECT *  FROM másik_tábla WHERE feltétel;
    - 2. megoldás: DELETE FROM tábla;
    majd INSERT-álom a sorokat:
    INSERT INTO tábla SELECT *  FROM másik_tábla WHERE feltétel;

    Ezt a két lépést úgy akarom megoldani, hogy egy blokkban fusson le, tehát egy függvénybe teszem bele.

    Fontos kérdés, hogy mi van, ha éppen akkor hívódik meg a függvényem, ami a táblát használja, amikor éppen a frissítő függvény (truncate/delete, majd insert) fut?
    Előállhat olyan helyzet, hogy épp üres táblát használ a függvényem?

Új hozzászólás Aktív témák