sql - 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 分钟)。较新的日期会立即返回。
这里发生了什么?
我附上了索引的图片:
解决方案
对于这个特定的查询,您需要寻找ItemID
并步行(尽管是一步)SalesDate
。考虑到这一点,索引将是:
create index ix1 on DailySales.dbo.DailySales (ItemID, SalesDate)
创建此索引后尝试查询。
推荐阅读
- android - 在 Retrofit 中区分 writeTimeout、readTimeout 和 connectTimeout?
- angular - Angular 2+:当搜索是共享组件时在 json 数据中搜索
- json - json - 如何获取 json 到数组
- java - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败
- python - Docker 撰写脚本抱怨 python 模块导入
- angular - 动态 StyleUrl Angular 7
- sql - PostgreSQL 中两个日期的区别
- r - 对于 R 数据框中的每一列
- iot - 我们可以在应用程序中将 IoTConnect 用于 UI SDK 而不是 API 调用吗
- javascript - 继承div高度