Почему простые объединения в небольших наборах данных так сильно тормозят работу ArcMap?

13

ArcGIS 9.3.1, ArcInfo. У меня есть небольшая файловая база геоданных и классы объектов SDE (несколько тысяч записей каждая, 50 столбцов), для которых я выполняю объединения атрибутов. После объединений рисование карты замедляется с доли секунды до нескольких секунд каждый раз, иногда больше. Добавьте в некоторые определения определения, которые ссылаются на поля из объединения, и пришло время получить чашку кофе во время перерисовки. Любые идеи о том, почему это происходит? Кто-нибудь еще испытывал это?

Чед Купер
источник
6
Индексируются ли ваши поля объединения?
Дерек Суингли
Нет, они не проиндексированы.
Чед Купер
9
Чтобы ответить на ваш последний вопрос, Чад: да, у меня была плохая производительность соединения в каждой версии ArcGIS. Огромный прогресс в скорости вычислений за последнее десятилетие все еще не в состоянии угнаться за обычным снижением производительности с каждым новым выпуском. Это одна из главных причин, по которой я не могу использовать ее для аналитической работы. (Для картографической работы это другая история.)
whuber
Вопрос @ Swingley может быть ответом на вашу проблему. Присоединение к неиндексированному столбцу серьезно замедлит процесс. Скорее всего, вы получите значительное увеличение скорости, просто создав индекс для этого поля. Вам также может понадобиться переместить объекты из файловой базы геоданных в SDE; Доступ не самая быстрая вещь в блоке, поэтому переключение на SqlServer или Oracle также может помочь вам с проблемами скорости.
Майкл Тодд
2
@Jay: да, Свингли был первым, кто поставил ключевой камень на место, и получил за него 3 голоса, однако вы пошли дальше и описали метод. Все побеждают. :) Мы стремимся построить не только правильный ответ, но и лучший. Они не всегда находятся в одном контейнере одновременно.
Мэтт Уилки

Ответы:

10

Мне регулярно нужно присоединяться к другому классу объектов depts: классу объектов SDE без каких-либо индексов.

Копирование в локальную файловую базу геоданных + индексные сборки действительно ускоряет процесс.

Поскольку это временно, я обычно делаю это на RAM-диске http://t.co/EBTeOem .

В зависимости от ваших данных могут помочь поля индексации, которые вы используете для символизации, или поля, используемые в запросе определения.

Джей Камминс
источник
Никогда не думал об индексировании полей, на которых основана символика. Считаете ли вы, что это повышает производительность рендеринга при перерисовке / обновлении карты?
Чед Купер
Я изменю ответ - поля индексации, используемые для рендеринга, не помогут в каждом случае, и я не знаю наверняка, помогает ли это для файловой базы геоданных. Это скорее привычка, основанная на моей памяти о том, как классы объектов sde выполнялись в прошлом (используя se_toolkit).
Джей Камминс