Проверять, что индексы атрибутов используются в запросе от ArcObjects?

11

У нас есть некоторое программное обеспечение как часть более крупного проекта, написанного с использованием ArcObjects через .NET. Это программное обеспечение переносит и объединяет данные из нескольких файловых баз геоданных в одной схеме в одну файловую базу геоданных в аналогичной, но другой схеме. Некоторые этапы миграции включают поиск существующей строки и обновление ее данными из другой таблицы. Это может стать очень медленным, когда целевая база геоданных большая, поэтому я добавил несколько многопольных атрибутных индексов для улучшения производительности запросов / обновлений.

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

Я думаю, что я действительно ищу эквивалент плана запроса - что-то похожее на EXPLAIN PLANOracle.

Запросы находятся в файловой базе геоданных, используя ArcObjects напрямую (без бэкэнда СУБД или SQL).

комар
источник
Вы рассчитывали производительность с индексами атрибутов и без них? Я думаю, что это единственный способ узнать, что они оказывают влияние.
blah238
Сейчас я провожу тесты производительности с набором данных разных размеров. Я постараюсь опубликовать результаты, когда получу их.
Комнат
В библиотеках классов ArcObjects я искал что-то похожее на метод Smallworld Magik is_size_fast?, который возвращает true, если используются индексы, но я не смог увидеть эквивалентный вызов ArcObjects.
Комнат
fGDB - это собственный формат базы данных ESRI, есть API, который позволит вам получать доступ к данным без объектов ESRI, но я сомневаюсь, что это пролило бы много света на ваши проблемы. Использование признаков является автоматическим и не может быть обнаружено или подтверждено. Я согласен с blah238, это единственный способ сказать наверняка. «Уникальные» и «восходящие» параметры могут иметь большое различие, но используйте эти параметры только в том случае, если вы абсолютно уверены в уникальности и / или возвышении.
Майкл Стимсон
@ blah238 Я думаю, ты мог бы превратить свой комментарий в ответ.
PolyGeo

Ответы:

1

Файловая база геоданных - это собственная база данных Esri, есть API , который позволит вам получать доступ к данным без ArcObjects, но я сомневаюсь, что это пролило бы много света на ваше затруднительное положение.

Использование индексов происходит автоматически на уровне базы данных и не может быть обнаружено или подтверждено, за исключением своевременности функций, использующих их.

Я согласен с blah238, единственный способ сказать наверняка - это работать со встроенными индексами и без них и сравнивать разницу во времени.

Варианты «уникальности» и «возрастания» для построения индекса могут иметь большое различие, но используйте эти параметры только в том случае, если вы абсолютно уверены в уникальности и / или вознесении, если данные не подходят, индекс не будет создан или, если это действительно может повлиять на производительность, а не улучшить.

Майкл Стимсон
источник