ORDER BY FIELD上的db INDEX在非常简单的查询中没有帮助 - 仍然会减慢响应速度?

时间:2013-02-08 12:26:28

标签: database indexing db2 sql-order-by

我有一个非常简单的查询,它返回200K记录很慢(20秒)。

SELECT * FROM TABLE ORDER BY ID DESC

如果我这样做

 SELECT * FROM TABLE

它会返回快速结果。

我在该字段ID(ALLOW REVERSE SCANS)上创建了INDEX,但仍然返回非常相似的响应。 哪里可以问题?这个查询可能导致停滞的原因是什么? 我更新了statictics和索引表元数据。

我希望得到数据库专家(管理员)的帮助,我知道这不是一个简单的问题。

谢谢

1 个答案:

答案 0 :(得分:0)

缓冲池很重要,排序堆参数(沿着sheapthres和sheapthres_shr)同时检查是否存在排序溢出,因为这意味着由于内存不足而将排序写入磁盘,为此系统临时表空间是必需的。检查它们存储的位置,以及磁盘是否足够快。

查看访问计划,并检查索引是否已考虑在内。

第一个查询速度非常快,因为它不需要任何排序,只需要进行表扫描。

对于第二个,索引不执行任何操作,因为您将从表中检索所有数据,因此它不会访问索引('where'中没有任何内容,没有任何内容被过滤)

两个查询都需要表扫描,但第一个需要排序,这就是问题,排序。