Re[8]: Задачка
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.09.05 08:23
Оценка:
Здравствуйте, tpg, Вы писали:
tpg>C 50 лимонами искомых отрезков куда входит 1 точка любой алгоритм уснет, самый эффективный — тупой таблескан.
tpg>Приведенный мной алгоритм, как и любой индексный поиск эффективен лишь при достаточно малом числе вхождений в общее множество (высокая избирательность индекса). А вот тут, думаю, оптимизаторы и должны сказать свое слово в выборе алгоритма.
а, я не заметил индекса. Тем не менее, речь идет о том, что скалярный индекс здесь рискует оказаться малоэффективным. Грубо говоря, при поиске отрезков, покрывающих точку c координатой = MAX(l_bord) индекс скан захватит все точки. Для точек близких к "левой границе" сканирование ограничится достаточно небольшим подмножеством.
Для данной задачи можно ввести два индекса — (L, R) и (R, L) и надеяться на то, что оптимизатор выберет лучший в зависимости от значения @point. Тем не менее, для точек близких к середине производительность все равно будет неоптимальной.
tpg>Или мы про разное?
Я имею в виду пятьдесят миллионов отрезков. Объем результата, конечно же, зависит от распределения данных.
... << RSDN@Home 1.1.4 stable rev. 510>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.