У нас есть таблица с 6 миллионами записей, а затем у нас есть SQL, для запроса которого требуется около 7 минут.Я думаю, что SQL больше не может быть оптимизирован.
Время запроса заставляет нашу weblogic выдать исключение максимального застрявшего потока.
Есть ли какие-либо рекомендации для меня, чтобы решить эту проблему?
Ниже приведен запрос, но мне трудно его изменить,
SELECT * FROM table1
WHERE trim(StudentID) IN ('354354','0')
AND concat(concat(substr(table1.LogDate,7,10),'/'),substr(table1.LogDate,1,5))
BETWEEN '2009/02/02' AND '2009/03/02'
AND TerminalType='1'
AND RecStatus='0' ORDER BY StudentID, LogDate DESC, LogTime
Однако я знаю, что использование строк для сравнения дат занимает много времени, но кто-то написал, прежде чем я не могу изменить таблицуструктура ...
LogDate была определена как строка, и форматом является мм / дд / гггг, поэтому нам нужно подстроковать и конкатенировать ее, чем мы можем использовать между ... и ... Я думаю, что этоздесь сложно оптимизировать.