Sql sybase中返回延迟结果的初始select查询

Sql sybase中返回延迟结果的初始select查询,sql,select,sybase,Sql,Select,Sybase,我有一个存储过程,它在每个月底运行,其中我们有非常简单的select查询,但是当我调用这个SP时,检索数据将面临巨大的延迟。 当我从Rapid SQL客户机在本地进行测试时,我发现在第一次/初始执行此查询时,它也会延迟返回结果,而连续执行时,它返回结果的速度更快。下面是我在SP中的查询。请帮助 SELECT COUNT(*) FROM prechecks_data pd INNER JOIN processing_queue tq on pd.key_id = tq.queue_id WHERE

我有一个存储过程,它在每个月底运行,其中我们有非常简单的select查询,但是当我调用这个SP时,检索数据将面临巨大的延迟。 当我从Rapid SQL客户机在本地进行测试时,我发现在第一次/初始执行此查询时,它也会延迟返回结果,而连续执行时,它返回结果的速度更快。下面是我在SP中的查询。请帮助

SELECT COUNT(*)
FROM prechecks_data pd
INNER JOIN processing_queue tq on pd.key_id = tq.queue_id
WHERE tq.proc_status = 'PROC' AND pd.type_code = @type_id
只是想让您知道,处理队列列的索引如下所示 群集的、唯一的,位于默认队列\u id上

位于默认进程状态的非群集

预检查数据表列不再编入索引


只是想让您知道,processing_queue表包含大约20000000或更多的数据。如果需要任何其他信息,请告诉我。

这可能是因为预检查没有索引。如果查看查询执行计划,它可能会显示预检查的表扫描

如果您不熟悉执行计划,它会显示服务器在执行查询时消耗资源最多的位置。Sybase文档中的此链接显示了如何查看计划


我的第一个问题是,如果您对预检查数据进行查询,为什么预检查数据上没有索引?预检查数据中有多少行?嗨,Michael,谢谢您的回答。我可以在prechecks_数据表上找到索引。除此之外,我怀疑表处理_队列有大约2毫米的记录,甚至要从处理_队列中进行select count*花费的时间太长,可能需要几分钟左右。我是否需要修改表或其任何其他部分?请帮忙。我不太喜欢DB,因为我是java开发者。非常感谢您的帮助。表的创建如下所示。。。