Не пойму что за хрень и как это лучше пофиксить.
Есть запрос:
select
top 1
asuUUID, skuUUID, timestamp, volume, recorddate
from
stock
where
tankUUID = ?
order by timestamp desc
Так вот, эта хрень тормозит более минуты, когда where фильтрует все записи. При этом если я поставлю top 14 и более, выполняется мгновенно. Индексы на tankUUID и timestamp есть.
Вопрос как эту хрень пофиксить наиболее универсально и просто, ну и понадежнее? Нагуглил через with index, да, работает, но это специфичная для ms sql инструкция, у меня тогда могут отвалиться другие базы. Я даже могу топ 14 (а то и 100) и брать программно первый элемент, это будет достаточно шустро работать, это не узкое место (когда не выполняется по 100 секунд естественно, даже секунда вполне приемлемо). Но где гарантии что на каких то данных там опять такая хрень не всплывет?