Ú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
- Genshin Impact (PC, PS4, Android, iOS)
- sziku69: Fűzzük össze a szavakat :)
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Kuponkunyeráló
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Hobby elektronika
- ThinkPad (NEM IdeaPad)
- 3D nyomtatás
- Gitáros topic
- Vegyes fogadtatás, erős rajt: 2 millió példánynál a Crimson Desert
- További aktív témák...
- Sony Xperia 1 V - 12GB/256GB Fekete - GYÁRI FÜGGETLEN - 10 HÓ GARI
- Apple Watch Ultra 2 100% akku, full dobozos
- OnePlus 15 - 16GB/512GB Infinite Black - GYÁRI FÜGGETLEN - 3 ÉV GARI + AJÁNDÉKOK
- Lenovo ThinkCentre M720s - i5 8400, 16GB RAM, 250GB SSD, Windows matricával eladó
- Razer Blackwidow v4 mechanikus billentyűzet eladó!
- Dell P2419H / P2719H Full HD LED IPS 24"-27" LCD monitorok
- GAMER PC! Intel Ultra 245 / RTX 5070 / H810M-X WIFI / 32GB DDR5 / SSD 512GB / 700w! BeszámítOK!
- Apple iPhone 15Pro 128GB - Kártyafüggetlen, Fekete Titán, 85% Akku - 1év Garanciával
- Bomba ár! Lenovo X13 Yoga G1 - i5-10G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Telefon felvásárlás!! Samsung Galaxy S24/Samsung Galaxy S24+/Samsung Galaxy S24 Ultra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


