|
原帖由 5个周 于 2010-3-18 09:30 发表 ![]()
抱歉,我的这句 “为什么要清空缓存??? 为了测试机器存储够不够快???” 是反问句来着,因为我认为你这种清空缓存再做测试的做法是完全不对的。
数据库本来就是非常依靠数据在内存中的命中率的,所以多执行几次以后就很快是正常的以及需要的,因为数据这时候大部分都在内存中了,不需要跟硬盘打交道,这时候即使是表扫描都不应该很慢,但是如果表连接写的不好的话,在生产环境中没有那么多内存可以给你独享的时候,可能表现就不一样了,所以先自查存储过程中关键SQL的执行计划是很重要的。
祝楼主测试顺利。
看了你的回答,感觉意思表达模糊。
因为数据这时候大部分都在内存中了,不需要跟硬盘打交道,这时候即使是表扫描都不应该很慢
-------------------------------------------------------------------------------------------------------------------
如果数据缓存上已经存在了一个表上的所有数据,对该表进行全表扫描的时候也只是读缓存上的数据,只有逻辑读。应该是挺快的。
但是,你的数据缓存必须够大能够缓存这张表上的所有数据。如果只缓存了一部分的话,表扫描的时候也没有用。ase引擎照样对物理扫描全表。
但是如果表连接写的不好的话,在生产环境中没有那么多内存可以给你独享的时候
-------------------------------------------------------------------------------------------------------------------
什么叫没有内存独享,好像sybase中没有这个概念吧?本人sybase水平有限,至少我自己没有看到这个概念。
除非你给某个表上绑定了命名高速缓存,否则何来独享内存?内存就是来共享的,为何独享?命名缓存虽然是某个对象专用的,但是不能用独享这个概念。顶多说配置的不合理罢了。
你的意思好像是说:如果表连接写的不好,导致了表扫描的话。因为内存不足,不能缓存表的所有内容吧?
先自查存储过程中关键SQL的执行计划是很重要的
-------------------------------------------------------------------------------------------------------------------
这句话是完全赞同的。好像你的回答都是围绕这句话展开的!
[ 本帖最后由 andkylee 于 2010-3-18 10:26 编辑 ] |
|