> 1) The materialized data is available in 3 different forms; a list, a
> detail
> view, and a spreadsheet. Each form as somewhat different columns and
> different rules about ordering, which would likely confuse an SQC
> planner.
> In this implementation, all 3 forms are able to share the same cache.
See my proposal to cache function results.
You can create a cached function and :
SELECT your rows FROM cached_function(parameters) WHERE ... ORDER BY...
GROUP BY...
will only fetch the function result from the cache, and then the only
additional costs are the ORDER and GROUP BY... the query parsing is very
simple, it's just a select, and a "cached function scan"
I think caching can be made much more powerful if it is made usable like
this. I mean, not only cache a query and its result, but being able to use
cached queries internally like this and manipulaing them, adds value to
the cached data and allows storing less data in the cache because
duplicates are avoided. Thus we could use cached results in CHECK()
conditions, inside plsql functions, anywhere...