如何在 Sybase ASE 中清除缓存
How to Clear Cache in Sybase ASE
我想清除 Sybase ASE 的缓存,这样我就可以在两个不同的查询中始终测试最坏的情况。
我在研究中发现使用以下命令清除缓存,sp_helpcache检查缓存的对象:
sp_unbindcache <dbname>, <table>
sp_unbindcache_all <cache name>
我是怎么测试的?
I 运行 a SELECT 在 运行ning sp_unbindcache 之前和之后 table 计数,第二个测试是 运行 sp_unbindcache_all
前后的查询
发生了什么事?
我第一次 运行 查询有物理 I/O 后续尝试没有,只有逻辑 I/O。 (尽管 运行 使用 unbindcache 命令仍保留缓存)
奇怪的东西
当我 运行 sp_helpcache 它没有在缓存绑定信息 (CBI) 的对象列表中显示我的 table。在 运行ning sp_unbindcache_all 之后,sp_helpcache 在 CBI 上没有显示任何行。然后我重新 运行 查询并且 sp_helpcache 仍然是空的 CBI。
这很奇怪,因为这可能意味着当我 运行 查询时,我的 table 缓存在其他地方。
问题
所以我想知道当我 运行 查询时如何找到我的 table 被缓存的位置,然后如何从那里清除它?
其他信息
数据库:SYBASE ASE 15.7
sp_helpcache 只显示 "default data cache"
缓存绑定信息 (CBI) - 是 sp_helpcache 输出的一部分
更新:
我做了一个新测试,我将 table 绑定到 "default data cache" 以查看它是否会出现在 CBI 中并且它出现了。
Sp-helpcache 只显示绑定,不显示缓存中的内容。为此,您可以使用一些 MDA tables。
要清除缓存,绑定和取消绑定 table(或数据库)将完成这项工作。当然,重启ASE也会。
- 要清除 "default data cache" 中的缓存,您应该使用 dbcc
缓存数据删除
- 对于用户定义的缓存,您应该使用 sp_unbindcache,
或 sp_unbindcache_all
我想清除 Sybase ASE 的缓存,这样我就可以在两个不同的查询中始终测试最坏的情况。
我在研究中发现使用以下命令清除缓存,sp_helpcache检查缓存的对象:
sp_unbindcache <dbname>, <table>
sp_unbindcache_all <cache name>
我是怎么测试的?
I 运行 a SELECT 在 运行ning sp_unbindcache 之前和之后 table 计数,第二个测试是 运行 sp_unbindcache_all
前后的查询发生了什么事?
我第一次 运行 查询有物理 I/O 后续尝试没有,只有逻辑 I/O。 (尽管 运行 使用 unbindcache 命令仍保留缓存)
奇怪的东西
当我 运行 sp_helpcache 它没有在缓存绑定信息 (CBI) 的对象列表中显示我的 table。在 运行ning sp_unbindcache_all 之后,sp_helpcache 在 CBI 上没有显示任何行。然后我重新 运行 查询并且 sp_helpcache 仍然是空的 CBI。 这很奇怪,因为这可能意味着当我 运行 查询时,我的 table 缓存在其他地方。
问题
所以我想知道当我 运行 查询时如何找到我的 table 被缓存的位置,然后如何从那里清除它?
其他信息
数据库:SYBASE ASE 15.7
sp_helpcache 只显示 "default data cache"
缓存绑定信息 (CBI) - 是 sp_helpcache 输出的一部分
更新:
我做了一个新测试,我将 table 绑定到 "default data cache" 以查看它是否会出现在 CBI 中并且它出现了。
Sp-helpcache 只显示绑定,不显示缓存中的内容。为此,您可以使用一些 MDA tables。 要清除缓存,绑定和取消绑定 table(或数据库)将完成这项工作。当然,重启ASE也会。
- 要清除 "default data cache" 中的缓存,您应该使用 dbcc 缓存数据删除
- 对于用户定义的缓存,您应该使用 sp_unbindcache, 或 sp_unbindcache_all