Hirdetés
- Xiaomi 14T - nem baj, hogy nem Pro
- Megérkezett a Google Pixel 7 és 7 Pro
- Ezt az öt videót volt a legjobb megcsinálni idén
- A középkategória egyik legjobb vétele - Dreame L40 Ultra AE
- iPhone topik
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Apple iPhone 16 - ígéretek földje
- Mobil flották
- Yettel topik
- Milyen okostelefont vegyek?
Ú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
- Xiaomi 14T - nem baj, hogy nem Pro
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Teljes verziós játékok letöltése ingyen
- Tőzsde és gazdaság
- sziku69: Szólánc.
- Megérkezett a Google Pixel 7 és 7 Pro
- Battlefield 6
- Luck Dragon: Asszociációs játék. :)
- Pánik a memóriapiacon
- Milyen videókártyát?
- További aktív témák...
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es B860 lap! GAR/SZÁMLA (a Te nevedre)
- AOC G24G1 140Hz 24" Ívelt hibátlan állapot
- Dell Latitude E6410 i5 M560, Nvidia NVS 3100M 512MB GDDR3, 4Gb RAM, 250GB HDD, jó akku, számla gar
- Gamer PC minőségi alkatrészekből! I7-9700KF/2TB HDD/800GB SSD/32GB RAM 3600Mhz Rog alaplap
- Dell Latitude 5320 - 13,3" touch, i5-1145G7, 16GB RAM, SSD, EU bill., jó akku, számla, garancia
- Eredeti DELL 240W töltők (LA240PM160)
- ÚJÉVI AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3881
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen MS4010
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest


