8toni8
@8toni8

Как можно оптимизировать запрос выборки по двум датам из БД Sqlite?

Составил запрос по выборки максимальных значений из двух полей с датами, используя несколько связанных таблиц:
SELECT mes.measureCommFromTab, p.XMLizmerenije, p.XMLdatetime, p.measureComm_id 
FROM `xmlmessagetab` p 
INNER JOIN `indexobjectstab` ps 
ON ps.keyID = p.indexObjectsTab_id 
INNER JOIN `measurecommtab` mes 
ON mes.keyID = p.measureComm_id 
WHERE ps.indexObject = '55285' 
AND p.XMLdatetime = (SELECT max(p.XMLdatetime) 
FROM `xmlmessagetab` p 
INNER JOIN `indexobjectstab` ps 
ON ps.keyID = p.indexObjectsTab_id 
WHERE ps.indexObject = '55285' ) 
AND p.datetimeMess = (SELECT max(p.datetimeMess) FROM `xmlmessagetab` p INNER JOIN `indexobjectstab` ps ON ps.keyID = p.indexObjectsTab_id WHERE ps.indexObject = '55285' )


Запрос выполняется две с половиной минуты, что не выносимо долго:(
1. Подскажите пожалуйста, может быть есть способ оптимизировать данный запрос?
2. Есть план "Б", при записи данных в БД, дублировать последнюю дату поля "XMLdatetime" и потом использовать её для составления запроса на выборку по последней дате, что скажете об этом варианте?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы