我正在使用 Oracle 11g R2 解决以下问题,尽管 SQL Server 和其他数据库也是如此。
如果我们有一个没有 where 的主选择
F1, F2 , F3 -> 执行 -> 结果来自 DB [Q1]
从表 1 中选择 F1、F2、F3
现在更改选择并删除 F3
F1, F2 -> 执行 -> 结果来自 DB
- 应该来自子集的缓存请评论
从表 1 中选择 F1、F2
在运行上述查询时,我如何确认 oracle 从缓存中返回结果。
还要考虑以下情况,
从 Table1 中选择 F1,max(F2), F3 ( Super Set)
从 Table1 中选择 F1、F3(不完全是子集,但至少看起来如此。)
现在,如果有一些聚合应用,例如 Sum(F1), Max(F2) ,那么 oracle 如何决定此类查询的子集将来自缓存。
我想创建一个系统,例如 Windows 应用程序,它将获取的数据存储在磁盘上,如果缓存键通过某种机制匹配,系统从缓存中获取结果以用于后续查询,而不是在数据库上执行。如何找到选择子集以提高性能的最佳方法?
谢谢,