- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Mr Dini: Mindent a StreamSharkról!
- moongoose: Nagy méretű flac file-ok kiírása cd-re audio cd-ként.
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Gurulunk, WAZE?!
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- gban: Ingyen kellene, de tegnapra
Ú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
- Highguard
- Új Xeonokkal szorongatná meg az Intel az AMD-t
- Nintendo Switch 2
- Apple AirPods Pro (2. generáció) - csiszolt almaságok
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Linux Mint
- PlayStation 1 / 2
- Fotók, videók mobillal
- RAM topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- További aktív témák...
- A KINCS! ÚJ Dobozos HP ZBook Power G10 Workstation 15,6" Ryzen 9 7940HS 32/1TB RTX 2000 ADA 8GB FHD
- Xbox Series S 512GB
- A KINCS! Zsír Dobozos HP ProBook 450 G10 Fémházas Laptop 15,6" -45% i7-1355U 16/512 Iris Xe FHD 3 Év
- Dell 27" U2722D 2560x1440 2K / QHD HDMI USB-C hibátlan (75k) és egy karcos képpel (40k)
- Bontatlan Intel Core ULTRA 9 285K (24mag!) + hűtött VRM-es Z890 alaplap! GAR/SZÁMLA (a Te nevedre)!
- Macbook Air M2 15" 8GB 256GB 100%
- HP 150W töltők (19.5V 7.7A) kis kék, kerek, 4.5x3.0mm
- BASEUS Compact Quick Charger 2xUSB USB-C PD 3A 30W fekete
- Dell Latitude 3301 Core i5-8265U CPU / 8GB DDR4 RAM (Zsanér törött)
- LG 40U990A-W / 40" Ívelt Nano IPS Black / 5K UHD 120Hz / 2x ThunderBolt 5.0 / Adobe RGB 99%
Á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

