- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- iPhone topik
- Android szakmai topik
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Apple iPhone 17 Pro Max – fennsík
- Xiaomi 15T Pro - a téma nincs lezárva
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Google Pixel topik
- iGO Primo
- One mobilszolgáltatások
Ú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
- Linux kezdőknek
- Hivatalosan is elkezd védekezni az Intel csodafegyvere ellen az új Geekbench
- Bittorrent topik
- 50 év után kilőtt négy űrhajós a Holdra
- Mikrotik routerek
- Vigneau interaktív lokálblogja
- NVIDIA GeForce RTX 3060 (GA106)
- Gyúrósok ide!
- Facebook és Messenger
- Kerékpárosok, bringások ide!
- További aktív témák...
- Asus TUF B360M-E Gaming / Beszámítás OK!
- BESZÁMÍTÁS! GIGABYTE B650E R9 7900X 64GB DDR5 1TB SSD RTX 5080 16GB NZXT H9 Flow White Corsair 850W
- BESZÁMÍTÁS! MSI X570 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Kolink Unity Lateral ARG 750W
- BESZÁMÍTÁS! MSI B650 R5 9600X 32GB DDR5 1TB SSD RX 9070XT 16GB Lian Li LANCOOL II Mesh C RGB 750W
- BESZÁMÍTÁS! Gigabyte B450M R5 3600 16GB DDR4 512GB SSD GTX 1070 8GB Zalman S3 Chieftec 700W
- Új Acer Nitro V15 FHD IPS 144Hz Ryzen7 7735HS 16GB DDR5 512GB SSD Nvidia RTX 4060 8GB Win11 Garancia
- Apple iPhone 16 Pro Max 256GB Black Titanium használt, karcos kijelző 91% akku - 6 hó garancia
- Xiaomi Redmi Note 14 Pro + / 8/256GB / Kártyafüggetlen / 12Hó garancia
- HP EliteBook 640 G9 - i5-1235U 16GB 1000GB 1 év garancia
- ÚJ MacBook Pro 16" M4 PRO 24GB 512GB Space Black
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

