Slide 30
Slide 30 text
概要
Union All ビューに対するGroup By Pushdown
Copyright © 2024, Oracle and/or its affiliates
30
GROUP BYをビューにプッシュし、各ビュー・ブランチにGROUP BYを配置。
これにより、 GROUP BYによる重複値の削減効果が⾒込め、パフォーマンスが⼤幅に向上します。
※Group By Pushdownの機能⾃体は11gから利⽤可能。23aiではUnion Allビューに適⽤可能になりました
SELECT s.region_id, s.sale_code, sum(p.prod_keyv) sm
FROM products p, (SELECT region_id, sale_code
FROM sales_emea s1
WHERE region_id < 500
UNION ALL
SELECT region_id, sale_code
FROM sales s2
WHERE region_id < 480) s
WHERE s.region_id = p.source_rgn
GROUP BY s.region_id, s.sale_code;
SELECT s.region_id, s.sale_code, sum(p.prod_keyv * s.cs) sm
FROM products p, (SELECT region_id, sale_code, count(*) cs
FROM sales_emea s1
WHERE region_id < 500
GROUP BY s1.region_id, s1.sale_code
UNION ALL
SELECT region_id, sale_code, count(*) cs
FROM sales s2
WHERE region_id < 480
GROUP BY s2.region_id, s2.sale_code) s
WHERE s.region_id = p.source_rgn
GROUP BY s.region_id, s.sale_code;