According to the SnowPro Advanced: Architect documents and learning resources, the best way to
enable optimal clustering to enhance performance for different access paths on a given table is to
create multiple materialized views with different cluster keys. A materialized view is a pre-computed
result set that is derived from a query on one or more base tables. A materialized view can be
clustered by specifying a clustering key, which is a subset of columns or expressions that determines
how the data in the materialized view is co-located in micro-partitions. By creating multiple
materialized views with different cluster keys, an Architect can optimize the performance of queries
that use different access paths on the same base table. For example, if a base table has columns A, B,
C, and D, and there are queries that filter on A and B, or on C and D, or on A and C, the Architect can
create three materialized views, each with a different cluster key: (A, B), (C, D), and (A, C). This way,
each query can leverage the optimal clustering of the corresponding materialized view and achieve
faster scan efficiency and better compression.
Reference:
Snowflake Documentation: Materialized Views
Snowflake Learning: Materialized Views
https://www.snowflake.com/blog/using-materialized-views-to-solve-multi-clustering-performanceproblems/