abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 3
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 731 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    16.11.2010 20:14 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: pgsql - rozdělit update kličkou na menší dávky
    Eště aby ti to fungovalo, když tam máš kartézák jak kráva:
    update tb1 
    set cosi = neco_jinyho
    from
    (
      select
      tb1.id,  
      agregacni_fce(kousicky) neco jinyho
      from tI join tII
      on tb1.id = tII.id
      group by tb1.id
    
    )dta
    where tb1.id = dta.id
    
    
    Zkus tohle:
    UPDATE tb1
    SET
        tb1.cosi = (SELECT
                    AGG(...) AS neco_jinyho
                FROM
                    tii INNER JOIN ti ON (tii.id = ti.ref_id) -- uprav si Join Condition
                WHERE
                    tii.id = tb1.id
                GROUP BY
                    tii.id)
    WHERE
        EXISTS (SELECT
                    1
                FROM
                    tii INNER JOIN ti ON (tii.id = ti.ref_id) -- viz výše
                WHERE
                    tii.id = tb1.id)
    /
    
    Tohle prostě musí fungovat. Takovýhle dotazy pouštím obden nad miliony záznamy.

    Ta GROUP BY klauzule tam vpodstatě být nemusí, protože v SELECT klauzuli je jen ta agregačka.

    Dotaz zupdatuje sloupek COSI výpočtem nějaký agregačky pro všechny záznamy tabulky TB1, pro které existují odpovídající záznamy ve spojení tabulek TI a TII.

    Rozdělení na více dotazů moc nedoporučuji. Dělá to jen problémy.

    Podle toho, co jsem z tvého příkladu pochopil, omezuješ množinu TII množinou TI. Jinými slovy, v tabulce TII máš víc záznamů, které nechceš zahrnout do agregačky. V tom případě doporučuji udělat dočasnou tabulku:
    CREATE TABLE tmp_data AS
    SELECT
        tii.id AS tii_id,
        "další",
        "sloupce",
        "pro",
        "agregačku"
    FROM
        tii INNER JOIN ti ON (tii.id = ti.ref_id) -- uprav si Join Condition
    /
    
    CREATE INDEX idx_tmpdata ON tmp_data (tii_id)
    /
    
    a vypočítat tuto agregačku z této tabule. V případě, že tabulka TII obsahuje více nerelevantních záznamů než tabulka TB1, můžeš tyto záznamy též odstranit například dalším INNER JOINem. Ten index může být klidně složený. Databázi pak bude stačit probrousit index a s přístupem do vlastní tabule nebude ztrácet čas.

    Když i tohle bude málo, pak si z týhle tabule předpočítej i tu agregačku a to už musí fungovat i kdybys nechtěl. :-)

    Když sem nahraješ nějaký rozumný demo na hraní, možná ti i někdo pomůže. Takhle nevíme, jestli je ten tvůj dotaz špatně v reálu, nebo si jen nezvládnul obfuskaci. :-D

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.