SELECT * FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF100.CUSTOMER WHERE C_NATIONKEY = 7 and C_MKTSEGMENT LIKE 'MACHINERY' and C_COMMENT LIKE '%even %';
-- Create materialized view
CREATE OR REPLACE MATERIALIZED VIEW mv_db.public.v_1 AS SELECT * FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF100.CUSTOMER WHERE C_NATIONKEY = 7 and C_MKTSEGMENT LIKE 'MACHINERY' and C_COMMENT LIKE '%even%';
-- Don't use cache and test materialized view
ALTER SESSION SET USE_CACHED_RESULT = FALSE; ALTER WAREHOUSE COMPUTE_WH SUSPEND; ALTER WAREHOUSE COMPUTE_WH RESUME;
SELECT * FROM mv_db.public.v_1;
-- View refresh history from information_schema
SELECT * FROM TABLE(INFORMATION_SCHEMA.MATERIALIZED_VIEW_REFRESH_HISTORY());
SELECT * FROM TABLE(INFORMATION_SCHEMA.MATERIALIZED_VIEW_REFRESH_HISTORY(MATERIALIZED_VIEW_NAME => 'mv_db.public.v_1'));
SELECT TO_DATE(start_time) AS date,
database_name, schema_name, table_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.materialized_view_refresh_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2,3,4 ORDER BY 5 DESC;
/// Updating the base table effects ///
-- 1. Create sample table
CREATE OR REPLACE TABLE mv_db.public.t_1 AS SELECT * FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF100.CUSTOMER WHERE C_NATIONKEY = 7 and C_MKTSEGMENT LIKE 'MACHINERY' and C_COMMENT LIKE '%even%';
-- 2. Create materialized view from table
CREATE OR REPLACE MATERIALIZED VIEW mv_db.public.v_2 AS SELECT * FROM mv_db.public.t_1;
SELECT * FROM mv_db.public.v_2;
-- 3. Update base table
DELETE FROM mv_db.public.t_1 WHERE C_ADDRESS LIKE '%8%'; -- View materialized views information SELECT * FROM MV_DB.INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA ='PUBLIC';