Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
kw3v865
#4459
üzenetére
Mi volt a baj az eredeti elképzeléseddel?
FOR nem a mögé írt query által visszaadott sorrendben megy végig a sorokon, mint ahogyan a kurzorok tennék? De.
Indexelős ötleted nagyon elborult, egyrészt nehéz megvalósítani, pl. mi van akkor, ha jön egy új elem a táblába, akkor minden sort megupdatelsz az aktuális sorrend alapján?
Iszonyúan nagy overheadet produkálnának az ehhez szükséges triggerek.Ha csak annyi lenne a kérdés, hogyan tudod megmondani egy sorról, hogy ő valamilyen rendezés szerint hanyadik a táblában, akkor a row_number() over (order by x,y) függvényt tudod használni.
Egyébként meg a relációs adatbázisok mindig halmazokkal dolgoznak, nem egy-egy elemmel, így a más programnyelvek procedurális gondolkozásmódja (ciklusok, kurzorok...) SQLben sosem ad jó teljesítményt.
Próbálj inkább úgy gondolkozni, hogyan lehet egy queryvel az összes adatot egyszerre frissíteni/beszúrni.Előző projekten amúgy belefutottam hasonlóba, mint amit most szeretnél.
Örököltem egy kódot, ami egy táblából csinált egy rendezett kurzort, majd azon ment végig egyesével, és dinamikus SQLben kért új értéket egy szekvenciából, majd updatelte rá a tábla soraira, kvázi új indexet vezetett be.
Persze, hogy 15000 sor esetén húsz percig szöszmötölt rajta az Oracle.
Megoldás az lett, hogy egy segédtáblába leválogattam a fő tábla azonosítóit, meg a row_number() over (order by x,y) rn-t, aztán következett egy jól irányzott merge a fő táblára.
Egyből lefut 10 másodperc alatt...
Új hozzászólás Aktív témák
- Dobozos ÚJ Acer Aspire 5 A17-51GM-70LZ ULTRA 7 / 16GB RAM / 1TB SSD / RTX 2050 17,3
- iPhone 17 PRO MAX 256GB deep blue makulátlan 3 év Apple garancia! 2028 október 3-ig! Fulldoboz!
- FEHÉR Corsair Vengeance RGB PRO SL 16GB kit (2x8GB) DDR4-3200Mhz CL16
- HP 250 G6 i3-6006U 8GB DDR4 2400MHz HD520 240GB SSD Windows 11 Pro, vadiúj garis aksi
- TP-Link TL-SG1024DE 24 port menedzselhető asztali switch
- Keresünk Galaxy S23/S23+/S23 Ultra/S23 Fe
- Apple iPhone 15 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 88%
- HIBÁTLAN iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3497
- Samsung Galaxy S22 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Dynabook Portege X30L-J - i7-1165G7 I 16GB I 256SSD I 13,3" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

