首页 > 解决方案 > MAX(dates) 在 Sybase ASE 中缓慢返回

问题描述

我对 Sybase ASE 中的 max(dates) 有疑问。我正在使用一个有数百万行的表格,但此时我只是在寻找该物品的最新销售日期。

如果我运行这个:

select * 
from DailySales.dbo.DailySales   
where ItemID = 558

我在 190 毫秒内获得了 60 条记录,最近的日期是三年多以前,但是如果我运行:

select max(SalesDate) 
from DailySales.dbo.DailySales   
where ItemID = 558

它运行了很长时间,(我停在 4 分钟)。较新的日期会立即返回。

这里发生了什么?

我附上了索引的图片:

在此处输入图像描述

标签: sqlsap-ase

解决方案


对于这个特定的查询,您需要寻找ItemID步行(尽管是一步)SalesDate。考虑到这一点,索引将是:

create index ix1 on DailySales.dbo.DailySales (ItemID, SalesDate)

创建此索引后尝试查询。


推荐阅读