0

我最近看到遗留系统上的存储过程偶尔会出现问题,它会显示如下错误消息:

服务器消息:编号 10901,严重性 17:此查询需要X个辅助扫描描述符,但目前只有Y个辅助扫描描述符可用。要么提高“辅助扫描描述符数量”配置参数的值,要么稍后尝试查询。

其中X略低于Y。Sybase 手册很有用地告诉我应该重新设计我的表以使用更少的辅助扫描描述符(如何?!),或者增加系统上可用的数量。奇怪的是,它多年来一直运行良好,唯一改变的是我们修改了几列的数据类型并添加了一个索引。任何人都可以对此有所了解吗?

4

2 回答 2

2

您没有说您使用的是哪个版本的 Sybase,但以下内容适用于 ASE 12.5 及以后的版本。

我怀疑是新索引的添加导致该存储过程的查询计划被抛出。你试过跑步吗

update statistics *table_name*

在上面?如果失败,您可以通过运行找出您有多少扫描描述符

sp_monitorconfig "aux scan descriptors"

然后通过运行增加它

sp_configure "aux scan descriptors", x

其中 x 是您需要的扫描描述符的数量。

如果您希望减少存储过程正在使用的扫描描述符的数量,那么根据这里 您必须

重写查询,或使用临时表将其分解为多个步骤。对于 DOL 锁定表,如果有很多表扫描,请考虑添加索引。

但是如果没有看到查询计划,就不可能给出更具体的建议。

于 2008-11-07T09:55:51.500 回答
1

这是提交了 CR 的 Sybase 12.5.2 中的缺陷,请参阅此列表中的问题 361967 。它已针对 12.5.3 及更高版本进行了修补。

于 2008-11-10T23:43:56.603 回答