Игорь Горбонос wrote:

SELECT a FROM NEW_TABLE nt
WHERE nt.a
IN
(
   SELECT Min(nt.a)

И зачем тут IN? Чем равенство не устраивает?

    FROM NEW_TABLE nt
WHERE nt.a IN (2590757,2585395,2581973,2587496,2588517,2590089,2591285,2591989,2589558,2591954,2591660,
> ...
2580065,2593941,2593982,2593993,2593996,2587464,2567951,2583486,2585719,2585656,2586473)
)

Пипец, а не запрос.

------ Performance info ------
Prepare time = 31ms
Execute time = 17s 594ms
Fetches from cache = 2 700 037

Версия сервера какая? Статистика по индексу?

Не индексированных чтений 5000.

Пофиг.

При увеличении данных до 10000 записей время выполнения этого-же запроса возрастает и статистика выглядит так:

------ Performance info ------
Prepare time = 31ms
Execute time = 52s 281ms
Fetches from cache = 5 410 067

Есс-но.

Мне кажеться что при выполнении запроса сначала разворачиваеться in, а потом выполняеться подзапрос, может правильнее было-бы выполнить подзапрос, а потом результаты развернуть в in ?

Для каждой записи внешнего запроса выполняется подзапрос.


--
Дмитрий Еманов

Reply via email to