我目前的任务是优化一些运行在非常大的数据集上的SQL查询。我有下面的查询,我试图优化,但在此刻挣扎PostgreSQL MAX()内部查询真的很慢
该查询大约需要大约40-45分钟回复,显然不可接受的答案。随着数据集在数据库中的增长,它甚至需要更长的时间。
我相信它的内部MAX()函数大大减缓查询?
我感谢任何帮助或建议,使查询更好,更快。
SELECT
positionview.equipmenttimestamp,
positionview.name,
positionview.iNumber,
positionview.datauserprovidername,
positionview.latitude,
positionview.longitude
FROM
public.positionview
WHERE positionview.outbound = false
AND positionview.referenceIdentifier is null
AND positionview.responseType = 'XYZ'
AND positionview.equipmentTimestamp >='2016-02-02 14:44:08.213'
AND positionview.equipmentTimestamp <='2016-02-05 14:44:08.213'
AND positionview.equipmentTimestamp =(
SELECT MAX(positionview2.equipmentTimestamp)
FROM PositionView positionview2
WHERE positionview.iNumber = positionview2.iNumber
AND positionview2.outbound = false
AND positionview2.referenceIdentifier is null
AND positionview2.responseType = 'XYZ'
AND positionview2.equipmentTimestamp >='2016-02-02 14:44:08.213'
AND positionview2.equipmentTimestamp <='2016-02-05 14:44:08.213');
非常感谢提前!
令人惊叹!谢谢和其他花时间提交答案的人。非常感谢! – dnzdlklc