为了更快的定位您的问题,请提供以下信息,谢谢
【详述】在使用物化视图查询改写功能过程中,有以下几个问题:
- create table as select 的方式不会命中物化视图
- explain ANALYZE sql的方式会命中物化视图,但是执行时间并没有缩减多少。但是内存确实缩减了
执行sql存在2000万3000万2000万的的大表关联,物化视图把大表关联物化了,理论上,执行时间应该会大幅缩减才对
创建物化视图sql:
CREATE MATERIALIZED VIEW gjc_test_materialized_sfca_t_sfcb_t
DISTRIBUTED BY RANDOM BUCKETS 3
REFRESH manual
AS SELECT
A.*,
B.SFCB001 ,
B.SFCB002 ,
B.SFCBDOCNO ,
B.SFCBENT ,
B.SFCBSITE ,
B.SFCB003 ,
B.SFCB004 ,
B.SFCB005 ,
B.SFCB006 ,
B.SFCB007 ,
B.SFCB008 ,
B.SFCB009 ,
B.SFCB010 ,
B.SFCB011 ,
B.SFCB012 ,
B.SFCB013 ,
B.SFCB014 ,
B.SFCB015 ,
B.SFCB016 ,
B.SFCB017 ,
B.SFCB018 ,
B.SFCB019 ,
B.SFCB020 ,
B.SFCB021 ,
B.SFCB022 ,
B.SFCB023 ,
B.SFCB024 ,
B.SFCB025 ,
B.SFCB026 ,
B.SFCB027 ,
B.SFCB028 ,
B.SFCB029 ,
B.SFCB030 ,
B.SFCB031 ,
B.SFCB032 ,
B.SFCB033 ,
B.SFCB034 ,
B.SFCB035 ,
B.SFCB036 ,
B.SFCB037 ,
B.SFCB038 ,
B.SFCB039 ,
B.SFCB040 ,
B.SFCB041 ,
B.SFCB042 ,
B.SFCB043 ,
B.SFCB044 ,
B.SFCB045 ,
B.SFCB046 ,
B.SFCB047 ,
B.SFCB048 ,
B.SFCB049 ,
B.SFCB050 ,
B.SFCB051 ,
B.SFCB052 ,
B.SFCB053 ,
B.SFCB054 ,
B.SFCB055 ,
B.SFCBUD001 ,
B.SFCBUD002 ,
B.SFCBUD003 ,
B.SFCBUD004 ,
B.SFCBUD005 ,
B.SFCBUD006 ,
B.SFCBUD007 ,
B.SFCBUD008 ,
B.SFCBUD009 ,
B.SFCBUD010 ,
B.SFCBUD011 ,
B.SFCBUD012 ,
B.SFCBUD013 ,
B.SFCBUD014 ,
B.SFCBUD015 ,
B.SFCBUD016 ,
B.SFCBUD017 ,
B.SFCBUD018 ,
B.SFCBUD019 ,
B.SFCBUD020 ,
B.SFCBUD021 ,
B.SFCBUD022 ,
B.SFCBUD023 ,
B.SFCBUD024 ,
B.SFCBUD025 ,
B.SFCBUD026 ,
B.SFCBUD027 ,
B.SFCBUD028 ,
B.SFCBUD029 ,
B.SFCBUD030 ,
F.OOEFENT,
F.OOEF001,
F.OOEF017,
AA.SFAA016,
AA.SFAA019,
AA.SFAA020,
AA.SFAADOCDT,
AA.SFAA010,
AA.SFAAENT,
AA.SFAADOCNO,
AA.SFAASITE,
AA.SFAA003,
AA.SFAA061,
AA.SFAASTUS
FROM test.SFCA_T AS A
INNER JOIN test.SFCB_T AS B
ON A.SFCAENT = B.SFCBENT AND A.SFCADOCNO = B.SFCBDOCNO AND A.SFCA001 = B.SFCB001
INNER JOIN test.OOEF_T AS F
ON F.OOEFENT = B.SFCBENT AND F.OOEF001 = B.SFCBSITE
INNER JOIN test.SFAA_T AS AA
ON AA.SFAAENT = A.SFCAENT AND AA.SFAADOCNO = A.SFCADOCNO
【背景】
【业务影响】创建表sql物化视图没有命中,但是用explain查select sql又命中了
【是否存算分离】
【StarRocks版本】3.3.0
【集群规模】例如:1fe(1 follower+2observer)+5be
【机器信息】CPU虚拟核/内存/网卡,例如:16C/64G/万兆
【联系方式】StarRocks社区群17-Golden
【附件】
以下是各种情况的profile:
- 没有物化视图下创建表
没有物化视图-创建表 (34.4 KB) - 没有物化视图下执行explain ANALYZE
没有物化视图-explainANALYZE (239.7 KB) - 创建物化视图后创建表:
创建物化视图后创建表 (158.1 KB) - 创建物化视图后执行explain ANALYZE
没有物化视图-explainANALYZE (239.7 KB)
可以发现:
- 创建物化视图后,执行创建表语句,不会命中物化视图
- 创建物化视图后,执行explain,会命中物化视图
- 命中物化视图和没有命中物化视图的执行时间相差不大