2009-02-11 32 views
1

该查询似乎运行慢得令人难以置信(25秒400万条记录!)上的Sybase V10在客户数据库:慢查询/禁用缓存 - Sybase Adaptive Server的

Select max(tnr) from myTable; 

随着TNR是主键。

但是,如果我在我们的服务器上运行它1000x,它似乎走得很快(15毫秒......),这使我认为这是因为查询结果被缓存。有没有办法在Sybase中禁用此查询(或整个数据库)的缓存来重现此问题?

我想:

call sa_flush_cache(); 
call sa_flush_statistics(); 

但似乎并没有这样的伎俩。

+0

也许问题不是您的结果被缓存,而是您的客户端服务器存在问题 – 2009-02-11 14:13:21

+0

也许检查两个查询计划以确保它们都使用任何适用的索引。 MAX()查询通常受益于后向索引扫描。 – Allethrin 2009-02-12 05:48:15

回答

1

不幸的是DBCC cacheremove是行不通的,因为它没有明确下来从缓存中的网页,而是消除了描述,并把它放回自由连锁。

除了重新启动数据服务器,唯一的方法是将对象绑定到缓存,然后执行测试,然后解除绑定将从缓存中删除所有页面的对象。