select autoid from (SELECT ROW_NUMBER() OVER (ORDER
BY MYTABLE.DETECTEDUTC DESC) as rownum, autoId from
MYTABLE where MYTABLE.guid in (..guids..)) as tab1 where rownum >=1000 and rownum < 1020
У нас есть таблица MYTABLE, которая может содержать миллионы записей, в настоящее время она имеет 10 миллионов записей.
Приведенный выше SQL-запрос, используемый для получения разбитых на страницы данных в нашем коде, работает нормально до тех пор, пока запрос не даст результатов, но зависает в течение нескольких часов, если запрос возвращает 0 результатов.
Также SQL-сервер начинает использовать системную оперативную память при выполнении запроса выше и не возвращает никакой записи.
с другой стороны, следующий запрос отлично работает с 0 результатами -
select autoid from (SELECT ROW_NUMBER() OVER (ORDER
BY MYTABLE.DETECTEDUTC DESC) as rownum, autoId from
MYTABLE where MYTABLE.guid in( ..guids..)) as tab1