- Friss információk és képek a OnePlus új órájáról
- iPhone topik
- Árat emel a Vivo és az iQOO Kínában
- Okosóra és okoskiegészítő topik
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Egy óra, két rendszer
- One mobilszolgáltatások
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Amazfit Bip 6 - jót olcsón
- Xiaomi 15T Pro - a téma nincs lezárva
Ú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
- Diablo IV
- Parkside szerszám kibeszélő
- Trollok komolyan
- Amlogic S905, S912 processzoros készülékek
- Gyúrósok ide!
- PlayStation 5
- Filmvilág
- Friss információk és képek a OnePlus új órájáról
- Az Intel szerint mindenkit érint, illetve érinteni fog a CPU-hiány
- Miskolc és környéke adok-veszek-beszélgetek
- További aktív témák...
- Lenovo ThinkPad T15 G1 laptop i7, 16GB RAM, 512GB SSD, 1 év garancia Magyar billentyűzet
- Playstation 4 VR V2 eladó!
- Dell Pro 14 PC14250 14" FHD+ IPS érintő Ultra 5 235U 16GB 256GB NVMe ujjlolv IR kam gar
- ELADÓ Radtel RT-920 (10W, CB sáv) többsávos kézi amatőr adóvevő
- PALIT RTX 5070 White OC 12GB - 36 hónap garancia
- Samsung SyncMaster EX2220 Monitor kisfogyasztású Full HD LED monitor
- Beszámítás! Apple MacBook Air 13 2020 M1 8GB RAM 256GB SSD notebook garanciával hibátlan működéssel
- AKCIÓ! Asus TUF A16 2024 FA607NUG Gamer notebook - R7 7445HS 16GB DDR5 1TB SSD RTX 4050 6GB
- szinteÚJ 2030 Gar! Dell Pro Max 14 Ryzen AI 9 HX PRO 370 32GB LPDDR5X 512GB NVMe SSD
- BESZÁMÍTÁS! ASUS H110M i5 6500 8GB DDR4 240GB SSD GTX 1050 Ti 4GB Zalman T3 Plus DeepCool 400W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

