Sybase存储过程在数据库碎片整理后停止工作

时间:2014-08-06 13:25:55

标签: stored-procedures sybase

存储过程在DB碎片整理之前正在运行。成功碎片整理后,其中一个存储过程停止工作(非常慢,没有任何输出)。索引已完成。存储过程做错了什么,只是无法解决它。所有其他存储过程工作正常。知道什么会出错吗?

2 个答案:

答案 0 :(得分:0)

尝试为过程中使用的表生成统计信息

update statistics TableName

或索引

update index statistics TableName
update index statistics TableName IndexName

答案 1 :(得分:0)

此外,您可以看到SP中的哪个语句是master..sysprocesses中的问题。

查找运行SP -sysprocesses的进程中有id和dbid,你可以使用object_name(id,dbid)来识别你的,然后你会看到stmtnum和linenum。

获取一个dba或sa_role的人在正在运行的spid上运行sp_showplan - 这将显示查询计划。

如果您根本没有更改任何索引或数据卷,则上述答案必须正确 - 统计信息需要更新。如果这是Sybase 15,您通常应该执行UPDATE INDEX统计信息,否则您很可能会得到一些错误的查询计划(如果您允许MERGE JOIN和HASH JOIN。)