vdbench零缓存命中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vdbench零缓存命中相关的知识,希望对你有一定的参考价值。
参考技术A 我数据库里的关键字段是id,数据也不多,几百条数据,id号是:NO.0001 到 NO.0200,我现在进行的操作是:在某个编号的后面插入一个编号,比如在NO.0010后插入一个NO.0011,然后以前的NO.0011变成NO.0012,以此类推,我的语句是:select id from table where id>='NO.0011' order by id desc,之所以降序排列是因为id是关键字段,不允许重复,所以重高的id先加1,
这样查处要修改的rst集合后,用循环对每一个记录进行update,我发现这样速度很慢,大约要几十秒,按理说应该不会啊,毕竟数据不是很多,外我在NO.0199后插入记录和在NO.0010后插入记录时的速度差不多,不知道为什么?在NO.0199后增加记录,只有一条记录需要修改啊,在也那么慢,
更新记录我拥的是:with rst
!id="NO."& val(right(!id,4))+1
.update
end with
每条记录的列有十几项,但是我查询和更新的只是id,为什么会出现这种情况呢,有没有别的好的方法处理这种情况,数据量最多的时候有5000多条,
Ehcache中的“缓存未命中”和“内存缓存未命中”有啥区别?
【中文标题】Ehcache中的“缓存未命中”和“内存缓存未命中”有啥区别?【英文标题】:What is the difference between "cache misses" and "in memory cache misses" in Ehcache?Ehcache中的“缓存未命中”和“内存缓存未命中”有什么区别? 【发布时间】:2012-08-08 22:11:34 【问题描述】:我正在查看 EhCache 统计数据,我看到了这些数字:
缓存未命中:75977 缓存命中:38151
InMemoryCacheMisses:4843 InMemoryCacheHits: 38151
“内存”是唯一的存储 - 没有堆外存储和磁盘存储 (overflowToDisk="false", diskPersistent="false"
)。那么这两个是什么意思呢?我希望它们是相同的(命中相同),但未命中差异很大。
【问题讨论】:
【参考方案1】:你的缓存中有一些null
-valued Element
s 吗? (Ehcache 允许您将 Element
s 与 null
值一起存储,但我不确定是否有任何限制)。
看2.5.3版本Cache.searchInStoreWithStats(Object key)的代码,好像有bug:
确定是否增加inMemoryMisses
的测试使用containsKey()
导数,
而增加 cacheMisses
的测试会针对 get()
导数的结果进行空值检查。
因此,每次您搜索存在于InMemoryStore
中但具有null
值的键时,它会增加cacheMisses
而不是inMemoryMisses
。
所以,我可能完全不在,但我闻起来很香。你怎么看?
编辑:我意识到我的解释是错误的——元素不能为空,(但它的“值”可以为空)。无论如何我都会把这个答案留在这里,以防它触发任何其他想法
【讨论】:
我想几年前我注意到了同样的问题,但没有报告。再骗我! 注意:该方法在主干中仍然没有改变:svn.terracotta.org/svn/ehcache/trunk/ehcache/ehcache-core/src/… 好点。我不认为我有空值,但我会检查一下。我已将差异报告为问题,等待回复 你知道吗,我的怀疑是错误的!即使值为 null,该元素也不会为 null。无论如何,也许这个想法会为您带来更好的想法。祝你好运 @laher 或 Bozho 你们中的任何人都找到了这背后的原因,我的缓存遇到了类似的行为。缓存中的命中和未命中值相同,但只有一个 inMemoryMiss【参考方案2】:我相信您使用的是 ehcache 2.5+ 。如果您有磁盘持久性为 true 的缓存配置(尽管 overflowtodisk 为 false),它会写入磁盘。所以也可能有磁盘吗?您可以在统计中查看它们。你有diskpersistance是真的吗?请发布您的缓存配置
【讨论】:
两者都是假的。零磁盘命中和未命中以上是关于vdbench零缓存命中的主要内容,如果未能解决你的问题,请参考以下文章