1

在客户端数据库的 Sybase v10 上,此查询似乎运行得非常慢(400 万条记录需要 25 秒!):

Select max(tnr) from myTable; 

以 tnr 为主键。

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

我试过了:

call sa_flush_cache ();
call sa_flush_statistics ();

但似乎没有奏效。

4

2 回答 2

1

不幸的是,dbcc cacheremove 不起作用,因为它不会从缓存中清除页面,而是删除描述符并将其放回空闲链上。

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

于 2009-02-16T12:30:40.813 回答
0

尝试dbcc cacheremove

于 2009-02-11T23:29:29.240 回答