这个查询似乎运行得非常慢(400万条记录需要25秒!)在客户端数据库的Sybase v10上:
Select max(tnr) from myTable;
以tnr为主键。
但是,如果我在服务器上运行它1000倍,它似乎运行得很快(15毫秒…),这使我认为这是因为查询结果被缓存了。是否有方法在Sybase中禁用此查询(或整个数据库)的缓存以重现此问题?
我试过:
call sa_flush_cache (); call sa_flush_statistics ();
但似乎没有成功。
不幸的是,dbcc cacheremove无法工作,因为它没有清除缓存中的页面,而是删除描述符并将其放回空闲链上。
除了重新启动数据服务器之外,唯一的方法是将对象绑定到缓存,然后执行测试,然后解除对象绑定,这将从缓存中删除所有页面。
尝试 dbcc cacheremove
dbcc cacheremove