假设oracle数据库有40M字节的缓存内存。我是数据库的唯一用户,我想了解如何执行查询以计算缓存命中率一个问题。在Oracle中解释计划和计算缓存命中率
比方说,我们有这个疑问:
SELECT column1, count(*)
FROM table1
GROUP BY column1
ORDER BY column1 desc
假设table1
不到40M大小,现在解释计划说:(?I/O)
TABLE ACESS(FULL)
有1330的成本,那么成本1340和SELECT STATEMENT
成本1340也SORT(GROUP BY)
。
我不明白,为什么SORT
和SELECT STATEMENT
每个都花费1340个I/O?
由于当我们进行表访问时我们的缓存大于表的大小,所以我们在缓存中加载磁盘内容,然后当我们想要排序和选择时,我们只需要检索缓存的内容,所以在我的头脑应该是零排序和选择的I/O。
另外我该如何计算该查询的缓存命中率?
你可以发布执行计划吗? –