Hirdetés
- Lesz is reklám a Nothing telefonjainak zárképernyőjén, meg nem is
- Ilyen lesz a Honor Magic8 RSR Porsche Design
- A Dreame megmutatta, hogy valójában mekkora - porszívótól az autóig - CES
- Mától kapható az IP69K védelmével világelső Blackview MEGA 12 tablet
- Megtalálták az akkumulátortechnológiai Szent Grált? - CES
- MIUI / HyperOS topik
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Xiaomi 14T - nem baj, hogy nem Pro
- Milyen okostelefont vegyek?
- Lesz is reklám a Nothing telefonjainak zárképernyőjén, meg nem is
- iPhone topik
- Megtalálták az akkumulátortechnológiai Szent Grált? - CES
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Baseus Inspire XH1 – nyomokban Bose-t tartalmaz
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
Apollo17hu
#3445
üzenetére
Ha most tényleg az a cél, hogy a 2 subqueryt egymástól független megcsinálja 1-1 alkalommal, akkor kb. így:
SELECT /*+ use_hash(t1 t2) */ t1.mezo_1
,t1.mezo_2
FROM (SELECT /*+ no_merge no_push_pred */ t.id
,t.mezo_1
,t.mezo_2
FROM tabla_1 t
WHERE feltetel_1
AND feltetel_2
...
AND feltetel_n) t1
,(SELECT /*+ no_merge no_push_pred */ t.id
FROM tabla_2 t
WHERE feltetel_1
AND feltetel_2
...
AND feltetel_n) t2
WHERE t1.id = t2.id;A subquery itt úgy viselkedik mintha view lenne. A view-kat az adatbázis "kifejti" ha tudja, az eredeti példát szerintem simán átírja az adatbázis úgy, mintha nem is lennének subquery-k, csak a 2 táblára a join. Ez a view merging, ezt akadályozza meg a no_merge hint.
Ha a view-kon kívül is vannak egyéb feltételek, azt az adatbázis be tudja helyezni a view-n belülre. Pl. a "select * from view1 where column1='...'" lekérdezést végre lehet úgy hajtani, hogy előállítja a view1 teljes eredményhalmazát, majd a végén alkalmazza a column1 szűrést, de úgy is, hogy a column1 szűrést átírja úgy, mintha a view-n belül lenne. Ez nem csak egyszerű szűrésekre működik, hanem joinra is, tehát miután előállította a t1 tartalmát, az adatbázis a t2-be már beviszi a tabla_2.id = t1.id szűrést és felhasználja a t1-ből jövő id értékeket, ez a join predicate pushdown. Ezeket tiltja a no_push_pred.
A use_hash-t meg csak a biztonság kedvéért tettem oda, hogy mindkettő subquery-t csak 1-szer csinálja meg, és ne válasszon nested loops-t.
Aztán ezen kívül még lehetnek mindenféle más optimalizálások, amelyekre most nem gondoltam és további hintek kellenének.
De persze nem ezt tartom a jó megoldásnak.
Új hozzászólás Aktív témák
- exHWSW - Értünk mindenhez IS
- Gamepad
- MIUI / HyperOS topik
- Eredeti játékok OFF topik
- Óra topik
- Apple asztali gépek
- CES 2026: újraértelmezte a billentyűzet fogalmát a HP
- GoodSpeed: Te hány éves vagy?
- Futás, futópályák
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- További aktív témák...
- Apple iPhone 14 Pro 512GB, Kártyafüggetlen, 1 Év Garanciàval
- Samsung 970 EVO PLUS NVMe M.2 ssd 1 TB
- Latitude 7420 2-in-1 14" FHD IPS kihajtható érintő i7-1185G7 32GB 512GB NVMe IR kam gar
- Csere-Beszámítás! Lenovo Ideapad Gaming 3 Laptop! I5 12450H / RTX 3050 / 16GB DDR4 / 512+256 SSD
- Pioneer MVH-S420BT - USB MP3 AUX, Android kompatibilis, Pioneer Smart Sync, iPod Direct Control
- Dell Vostro 3425 6magos Ryzen 5 5625U 8GB RAM 256GB SSD
- iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS4052, 94% Akkumulátor
- Újszerű Apple MacBook Air M1 13.3 - 8GB/256GB - Asztroszürke - 150 Ciklus - 92% akku - 1 év gari -
- iPhone XS Max 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3997
- MacBook Pro 16" M1 Max 64GB / 2TB / magyar / 27%-os ÁFÁS
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest


