Een gematerialiseerde weergave zou een geweldige optie zijn voor wat u wilt doen. Op deze manier kunt u de query eenmaal schrijven voor de weergave en vervolgens de gegevens in de gerealiseerde weergave zo vaak laten vernieuwen als u wilt. U kunt een taak hebben waarbij de gegevens één keer per nacht, in het weekend of op welke frequentie dan ook worden vernieuwd.
Nadat de gerealiseerde weergave is gemaakt, kunt u desgewenst ook indexen toevoegen aan de gerealiseerde weergave om te helpen bij het uitvoeren van zoekopdrachten.
Hieronder ziet u een snel voorbeeld van hoe u een gematerialiseerde weergave kunt maken.
CREATE TABLE sale
(
product_id NUMBER,
sale_date DATE,
sale_amount NUMBER
);
INSERT INTO sale (product_id, sale_date, sale_amount)
VALUES (124, DATE '2019-02-01', 40.25);
INSERT INTO sale (product_id, sale_date, sale_amount)
VALUES (124, DATE '2019-02-01', 80.99);
INSERT INTO sale (product_id, sale_date, sale_amount)
VALUES (124, DATE '2020-02-01', 30.50);
INSERT INTO sale (product_id, sale_date, sale_amount)
VALUES (124, DATE '2020-02-01', 46.75);
CREATE MATERIALIZED VIEW sales_summary
BUILD IMMEDIATE
REFRESH FORCE ON DEMAND
AS
SELECT product_id,
SUM (sale_amount) AS annual_sales,
MAX (sale_amount) AS max_price,
MIN (sale_amount) AS min_price,
EXTRACT (YEAR FROM sale_date) AS year
FROM sale
GROUP BY product_id, EXTRACT (YEAR FROM sale_date);
Resultaat
select * from sales_summary;
PRODUCT_ID ANNUAL_SALES MAX_PRICE MIN_PRICE YEAR
_____________ _______________ ____________ ____________ _______
124 121.24 80.99 40.25 2019
124 77.25 46.75 30.5 2020