代码之家  ›  专栏  ›  技术社区  ›  Carra

慢速查询/禁用缓存-Sybase自适应服务器

  •  1
  • Carra  · 技术社区  · 16 年前

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

    Select max(tnr) from myTable; 
    

    以tnr为主键。

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

    我试过:

    call sa_flush_cache ();
    call sa_flush_statistics ();
    

    但似乎没有成功。

    2 回复  |  直到 12 年前
        1
  •  1
  •   Vincent    16 年前

    不幸的是,dbcc cacheremove无法工作,因为它没有清除缓存中的页面,而是删除描述符并将其放回空闲链上。

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

        2
  •  0
  •   Allethrin    16 年前

    尝试 dbcc cacheremove