最近,我看到了遗留系统中存储过程偶尔出现的问题,该系统显示如下错误消息:
服务器消息:编号10901,严重性17:此查询需要X个辅助扫描描述符,但目前只有Y辅助扫描描述符可用。要么提高“辅助扫描描述符数量”配置参数的值,要么稍后尝试查询。
其中X略低于Y。Sybase手册有效地告诉我,我应该重新设计我的表,使用更少的辅助扫描描述符(如何?!),或者增加系统上可用的数量。奇怪的是,它多年来一直运转良好,唯一改变的是我们修改了几个列的数据类型,并添加了一个索引。有人能解释一下这件事吗?
发布于 2008-11-07 09:55:51
您没有说明您使用的是什么版本的Sybase,但是下面的内容对于ASE 12.5以后是很好的。
我怀疑是新索引的添加抛出了该存储过程的查询计划。你试过跑步吗
update statistics *table_name*在上面吗?如果失败,您可以通过运行
sp_monitorconfig "aux scan descriptors"然后通过运行
sp_configure "aux scan descriptors", x其中x是所需扫描描述符的数目。
如果您希望减少存储过程使用的扫描描述符的数量,那么根据这里,您必须
重写查询,或使用临时表将其分解为步骤。对于只有数据的锁定表,如果有多个表扫描,请考虑添加索引。
但是,如果没有看到查询计划,就不可能给出更具体的建议。
发布于 2008-11-10 23:43:56
这是Sybase 12.5.2中的缺陷,提交了CR,请参阅这份清单中的问题361967。它是为12.5.3及以上修补的。
https://stackoverflow.com/questions/271021
复制相似问题