У нас есть некоторое программное обеспечение как часть более крупного проекта, написанного с использованием ArcObjects через .NET. Это программное обеспечение переносит и объединяет данные из нескольких файловых баз геоданных в одной схеме в одну файловую базу геоданных в аналогичной, но другой схеме. Некоторые этапы миграции включают поиск существующей строки и обновление ее данными из другой таблицы. Это может стать очень медленным, когда целевая база геоданных большая, поэтому я добавил несколько многопольных атрибутных индексов для улучшения производительности запросов / обновлений.
Есть ли способ, которым я могу подтвердить, что запросы используют новые индексы атрибутов, и, возможно, как запрос выполняется?
Я думаю, что я действительно ищу эквивалент плана запроса - что-то похожее на EXPLAIN PLAN
Oracle.
Запросы находятся в файловой базе геоданных, используя ArcObjects напрямую (без бэкэнда СУБД или SQL).
is_size_fast?
, который возвращает true, если используются индексы, но я не смог увидеть эквивалентный вызов ArcObjects.Ответы:
Файловая база геоданных - это собственная база данных Esri, есть API , который позволит вам получать доступ к данным без ArcObjects, но я сомневаюсь, что это пролило бы много света на ваше затруднительное положение.
Использование индексов происходит автоматически на уровне базы данных и не может быть обнаружено или подтверждено, за исключением своевременности функций, использующих их.
Я согласен с blah238, единственный способ сказать наверняка - это работать со встроенными индексами и без них и сравнивать разницу во времени.
Варианты «уникальности» и «возрастания» для построения индекса могут иметь большое различие, но используйте эти параметры только в том случае, если вы абсолютно уверены в уникальности и / или вознесении, если данные не подходят, индекс не будет создан или, если это действительно может повлиять на производительность, а не улучшить.
источник