Квадратичная асимптотика исполнения запроса
От: Аноним  
Дата: 01.07.10 14:28
Оценка:
Имеется таблица [Поставки] с двумя полями [Время] [Количество]
и уникальным индексом [Время]
Запросы типа
select A.Время, sum(B.Количество) as Накопление
from Поставки AS A, Поставки AS B
where A.Время>=B.Время
group by A.Время

или
select A.Время, sum(B.Количество) as Накопление
from       Поставки AS A
inner join Поставки AS B
on         A.Время>=B.Время
group by   A.Время

или
select
  A.Время,
  (
    select sum(B.Количество)
    from   Поставки AS B
    where  A.Время>=B.Время
  ) as Накопление
from Поставки AS A

тормозят безбожно хотя пройтись по таблице из миллиона записей можно быстро
select sum(A.количество)
from  Поставки AS A
where A.Время<>ДатаАпокалипсиса
and   A.количество<>666

Как получить результат за линейное а не квадратичное время?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.