|
|
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
д0kmaytonпропущено... дОК я тебя умоляю. Ну никто не ответит на твой вопрос. Это кстате задача по сабжу, только мы ищем не точки , а анлогичные объекты ( улицы и перекрестки) . подругому задача звучит так. обьект находитесь возле фонтана , и вам нужно найти ближайший к нему фонтан, Хотя на карте ( квадрате) могут быть и отдельные деревья , скверы , автобусные остановки , дома, парковки, , ну и фонтаны .... Ну можно сделать составной индекс type+Z-order, но тогда тип нужно задать точно (на равенство) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 16:30 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
Z-кривая не отменяет обычных индексов. Это скорее кластеризация объектов с координатами (x,y) близкими, в соседних HDD blocks. Я-же собирался использовать в БД Oracle дополнительное поле z-code как еще одно измерение для оптимизаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 16:36 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
nikichaleд0k, Для не точек можно использовать тот же индекс, но кроме Z-порядка нужно еще хранить уровень покрывающих квадратиков. 28+28+8(байт для уровня)=64 - секрет магического числа 28. Уточнение. Еще указатели на страницу спарва лева вверху и низу того же уровня . 8*5=40 а страница должна быть 4 к, 8к ...... так как читать из файловой системы меньше чем 4к обейдется дороже чем 4 к. собственно возврашаясь вопросу оптимизации , как расположить страницы на диске так , что бы максимальное количество условий поиска обьекта размазанного по страницам покрывать мультиблочным чтением не читая лишних страниц ( не содержащих информацию о нужном нам обьекте) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 16:37 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
nikichaleд0kпропущено... Это кстате задача по сабжу, только мы ищем не точки , а анлогичные объекты ( улицы и перекрестки) . подругому задача звучит так. обьект находитесь возле фонтана , и вам нужно найти ближайший к нему фонтан, Хотя на карте ( квадрате) могут быть и отдельные деревья , скверы , автобусные остановки , дома, парковки, , ну и фонтаны .... Ну можно сделать составной индекс type+Z-order, но тогда тип нужно задать точно (на равенство) Аналог PK-FK только c только с разрешенным в FK значением null ( пока не классифицирован ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 16:45 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonZ-кривая не отменяет обычных индексов. Это скорее кластеризация объектов с координатами (x,y) близкими, в соседних HDD blocks. Я-же собирался использовать в БД Oracle дополнительное поле z-code как еще одно измерение для оптимизаций. Сходил покурил , поразмыслил и в очередной раз утвердился в мысли 18561522 что лучше иметь много индексов всяких и разных и их мержить , чем бить пространство на квадраты и прочие области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 17:04 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
д0kmaytonZ-кривая не отменяет обычных индексов. Это скорее кластеризация объектов с координатами (x,y) близкими, в соседних HDD blocks. Я-же собирался использовать в БД Oracle дополнительное поле z-code как еще одно измерение для оптимизаций. Сходил покурил , поразмыслил и в очередной раз утвердился в мысли 18561522 что лучше иметь много индексов всяких и разных и их мержить , чем бить пространство на квадраты и прочие области. У ораклового СВО есть проблемы c мержем индексов , это тема ораклового раздела. а тут я пытаюсь рассуждуть фундаментально. В принципе могу привлечь нашего спеца по сбору оракловой статистики СВО, но судя по затратам на процессоры и диски при сборе статистики и результатам в планах запрсов овчинка выделки не стоит . Нам пока не удалось найти оптимальные параметры сбора ститистики что бы заставить СВО мержить индексы без хинтов, вспоминаем старый добрый деприейтед руле :). Максимум, на что получилось выйти с более менее пердсказуемым результатом в планах , это мерж индексов через джоин таблицы сам с собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2016, 00:37 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
д0kСледующий вопрос , у вас есть улица длиной 5 км и шириной 30 м. Как должно быть построено индексное хранение , что бы тыцнув мышей в карту в любом месте улицы , получить ее название и координаты всех перекрестков и названия пересекающих улиц. Не вычитвая с диска квадрат 5км на 5 км со всеми его обьектами.Для этого надо индексировать не только шейпы, но и дополнительно их ключевые точки, при этом для прямых линий, "слишком протяжённых" в обычном зуме, надо дополнительно накидать точек вдоль линий (и при необходимости штриховку внутри них), а для объектов, слишком больших по площади в этом зуме, надо держать отдельные списки. Перед этим шейпам объектов разных типов назначаются, само собой, разные уровни "обычного зума" и разные уровни зума, при котором объекты вообще скрываются с карты. Тогда вы будете вычитывать квадрат с размером в полторы-две-три характерных ширины улицы, то есть для улицы это будет 50x50 метров. Правда, тогда полезут большие вопросы производительности для мультилиний со слишком большим количеством точек, но я не уверен, что могу рассказать, как они решаются, не нарушив контракт :| Но можно этого и не делать. Все улицы квадрата 5x5 километров уютно улягутся в памяти и дадут вам интерактивное время без фокусов. Вот когда всё очертание побережья мирового океана разбито на всего лишь три десятка мультиполигонов, и все изобаты разбиты так же, у вас карта раскрашена 20 слоями изобат с заливкой контуров, и вы даёте зум в Индонезию с её тясячами островов... одним неловким движением мыши в QGIS... вам придётся немножко подождать, прежде чем вы сможете сделать следующее движение карты :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2016, 01:39 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
д0kmaytonZ-кривая не отменяет обычных индексов. Это скорее кластеризация объектов с координатами (x,y) близкими, в соседних HDD blocks. Я-же собирался использовать в БД Oracle дополнительное поле z-code как еще одно измерение для оптимизаций. Сходил покурил , поразмыслил и в очередной раз утвердился в мысли 18561522 что лучше иметь много индексов всяких и разных и их мержить , чем бить пространство на квадраты и прочие области. Нашел 2000 года статью "Comparing Z-order B-tree and R-tree Family for Spatial Query Processing" по http://webcache.googleusercontent.com/search?q=cache:CglmEYxoLcwJ:europa.nvc.cs.vt.edu/~ctlu/Publication/1998-2006/Z-order-B-tree.ps &cd=8&hl=ru&ct=clnk&gl=ru и вывод, что Z-order B-tree индекс для пространственных выборок не хуже, чем R-tree, но проще. А тут http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves джентлемен все заново изобрел только для точек, но в коментах ему объяснили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2016, 21:59 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
nikichaleд0kпропущено... Сходил покурил , поразмыслил и в очередной раз утвердился в мысли 18561522 что лучше иметь много индексов всяких и разных и их мержить , чем бить пространство на квадраты и прочие области. Нашел 2000 года статью "Comparing Z-order B-tree and R-tree Family for Spatial Query Processing" по http://webcache.googleusercontent.com/search?q=cache:CglmEYxoLcwJ:europa.nvc.cs.vt.edu/~ctlu/Publication/1998-2006/Z-order-B-tree.ps &cd=8&hl=ru&ct=clnk&gl=ru и вывод, что Z-order B-tree индекс для пространственных выборок не хуже, чем R-tree, но проще. А тут http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves джентлемен все заново изобрел только для точек, но в коментах ему объяснилиС 2000 года в СУБД поменялось почти всё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2016, 05:53 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2016, 10:35 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
iv_an_ruНо можно этого и не делать. Все улицы квадрата 5x5 километров уютно улягутся в памяти и дадут вам интерактивное время без фокусов. Вот когда всё очертание побережья мирового океана разбито на всего лишь три десятка мультиполигонов, и все изобаты разбиты так же, у вас карта раскрашена 20 слоями изобат с заливкой контуров , и вы даёте зум в Индонезию с её тясячами островов... одним неловким движением мыши в QGIS... вам придётся немножко подождать, прежде чем вы сможете сделать следующее движение карты :) Я так думаю ИМХО, с фунтаментальной точки зрения, на определенном масштабе математика оптимального хранения должна быть другая . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 10:08 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
д0k Я так думаю ИМХО, с фунтаментальной точки зрения, на определенном масштабе математика оптимального хранения должна быть другая . Фракталы хороши только тогда, когда ты сначала рисуешь побережье, а потом приводишь местность в соотвествие с картой. Ну а вообще да, для мелкого хранения нужны уже не изобаты, а просто 3D-треугольная сетка. Одна беда --- если есть именно изобаты, да ещё заранее неизвестно, валидны ли они, то к 3d сетке без потерь данных не перейти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 13:04 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
iv_an_ruд0k Я так думаю ИМХО, с фунтаментальной точки зрения, на определенном масштабе математика оптимального хранения должна быть другая . Фракталы хороши только тогда, когда ты сначала рисуешь побережье, а потом приводишь местность в соотвествие с картой. Ну а вообще да, для мелкого хранения нужны уже не изобаты, а просто 3D-треугольная сетка. Одна беда --- если есть именно изобаты, да ещё заранее неизвестно, валидны ли они, то к 3d сетке без потерь данных не перейти. Я не понял, что вы имеете ввиду( выделено). Карта уже нарисована , ее нужно оптимально хранить и быстро искать участки . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 13:22 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
Ребяты. Фракталы и прочие аты-баты - совсем срыв мозка. Мы так далеко уеедем от темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 14:22 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
д0kiv_an_ruпропущено... Фракталы хороши только тогда, когда ты сначала рисуешь побережье, а потом приводишь местность в соотвествие с картой. Ну а вообще да, для мелкого хранения нужны уже не изобаты, а просто 3D-треугольная сетка. Одна беда --- если есть именно изобаты, да ещё заранее неизвестно, валидны ли они, то к 3d сетке без потерь данных не перейти. Я не понял, что вы имеете ввиду( выделено). Карта уже нарисована , ее нужно оптимально хранить и быстро искать участки .Тогда фракталы не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 14:31 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
iv_an_ruд0kпропущено... Я не понял, что вы имеете ввиду( выделено). Карта уже нарисована , ее нужно оптимально хранить и быстро искать участки .Тогда фракталы не нужны. не согласен Теже "четревья", вид с боку ..... зы я пытаюсь рассуждать о формате оптимального хранения .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2016, 17:24 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1340722]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
7ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 477ms |

| 0 / 0 |
