pu代表什么意思 pua代表什么意思( 六 )


基于结构的改写
基于结构的改写与基于规则的改写相反,通过提取查询中的特征,使用一套规则进行匹配改写 。优化器将查询表示为 SPJG 标准形式 (Join-Select-Project-GroupBy) , 提取查询中的 Join,Projects,Filters,Grouping 和 Aggregations 五种表达式,分别与物化视图对应的表达式进行匹配和改写 。
这个方法是由微软在 2001 年 SIGMOD 论文《Optimizing queries using materialized views: A practical, scalable solution》系统化的提出 。这种方法可以改写包含可以改写包含 Join , Filter,Project 的任意查询的方法,运用一系列的步骤匹配并得到补偿表达式 。还可以进一步改写含有 Aggreagtion 的查询,在需要时添加 Aggregation 节点返回进一步汇总的结果 。
基于结构的改写很容易扩展,例如改写 Outer Join 和子查询等,可以完成几乎全部的改写 。但是搜索成本较高,尤其是在查询复杂,改写尝试次数很多的情况下 。
参考资料
Goldstein J, Larson P ?. Optimizing queries using materialized views: a practical, scalable solution[J]. ACM SIGMOD Record, 2001, 30(2): 331-342.Bello R G, Dias K, Downing A, et al. Materialized views in Oracle[C]//VLDB. 1998, 98: 24-27.Zhou J, Larson P A, Goldstein J, et al. Dynamic materialized views[C]//2007 IEEE 23rd International Conference on Data Engineering. IEEE, 2007: 526-535.Jindal A, Qiao S, Patel H, et al. Computation reuse in analytics job service at microsoft[C]//Proceedings of the 2018 International Conference on Management of Data. 2018: 191-203.Calcite: Materialized View.Oracle: Database Data Warehousing Guide: Advanced Query Rewrite for Materialized Views.Redshift: Automatic query rewriting to use materialized views.Snowflake: Creating and Working With Materialized Views.作者:阿里云数据库OLAP产品部 云曦
本文为阿里云原创内容,未经允许不得转载 。

推荐阅读