我目前的任務是優化一些運行在非常大的數據集上的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