Это мой упрощенный запрос:
select
field1, field2, rn
from
(select
field1,
field2,
row_number() over(order by idx desc) as rn
from
MyTable
where
<where-condition>) as ttt
where
rn between 0 and 10
Этот запрос имеет время выполнения 6 секунд.Странный факт заключается в том, что если я выполняю только внутреннее выделение, время выполнения составляет 3 секунды: поэтому выбор первых 10 строк занимает половину времени выполнения, и это довольно странно.
Почему у меня такое странное поведение?Я ожидал, что внешний выбор будет самой быстрой операцией, вместо этого он займет 50% времени выполнения
Редактировать:
Вот сравнение между планами выполнения: верхний план - это выполнениеплан без внешнего выбора, план внизу изображения - это план выполнения, включающий внешний выбор