Чтобы ответить на первую часть вашего вопроса, я думаю, что это поможет взглянуть на дополнительный текст в файле справки Создание индексов атрибутов о многостолбечных индексах.
Порядок, в котором поля появляются в многоколоночном индексе, важен. В многоколоночном индексе со столбцом A, предшествующим столбцу B, столбец A будет использоваться для проведения начального поиска. Кроме того, такой индекс будет гораздо более полезным для запросов, включающих только столбец A, чем для запросов, включающих только столбец B.
Создайте многоколонный индекс для A и B. Этот индекс обычно будет более эффективным для запросов, включающих оба столбца. Для запросов, включающих только A, этот индекс будет медленнее, чем индекс только A. Этот индекс будет малопригоден для запросов, включающих только B. Чтобы компенсировать это, вы можете создать дополнительный индекс для B.
Оба этих отрывка показывают, что многостолбцовые индексы лучше подходят для специализированного использования. Кроме того, использование такого индекса для сортировки только по одному из включенных столбцов может фактически снизить производительность. По этой причине вполне вероятно, что отдельные индексы столбцов будут необходимы для каждого из атрибутов, включенных в многостолбцовый индекс.
Я нашел ссылку на старый, но интересный документ ESRI с указанием 9 причин выбрать файл вместо личной GDB . Это интересно тем, что в качестве одной из причин он называет производительность. Частично это увеличение производительности происходит из-за файловой системы хранения. Я думаю, что это также может повлиять на отсутствие поддержки нескольких столбцов. В отличие от персональной GDB, которая представляет собой один файл, индекс в файловой GDB хранится как отдельный файл в структуре GDB. Это означает, что файл индекса и файл атрибута для определенного класса объектов должны быть связаны и доступны вместе. Я мог видеть, где многостолбцовый индекс приведет к переходу назад и вперед между индексным файлом и файлом атрибутов и потенциально может привести к снижению производительности, которое перевешивает прирост производительности индексирования.
Поскольку файловая GDB уже значительно выиграла в производительности по сравнению с персональной GDB, возможно, не стоило реализовывать индекс с несколькими столбцами.
Из моего опыта работы с обоими типами GDB я видел, что Personal GDB работает примерно на 50% больше, чем файл. Исходя из предоставленных вами данных относительно вашей файловой GDB, если бы вы конвертировали в PGDB, вы, вероятно, в итоге получили бы персональную GDB ~ 300 МБ. Из того, что я видел, работая с базами данных MS Access, как в продуктах ESRI, так и по отдельности, можно увидеть снижение производительности, как только размер файлов .mdb значительно превысит размер более 100 МБ.
Другая проблема, вероятно, заключается в том, что даже если бы вы могли ускорить поиск по атрибутам, вы бы увидели значительное снижение производительности, связанное с перемещением во фрейме данных и обновлением представления. Слой просто не рисовался бы так быстро, если бы был в PGDB. Эта статья, сравнивающая типы баз геоданных, дает больше информации о различиях в производительности.
Как и во многих других случаях, лучший выбор в конечном итоге сводится к тому, каков ваш вариант использования. Если есть много специфических операций с базой данных, которые вы хотели бы выполнить, например запросы и обновления, которые вы можете выполнять в интерфейсе Access, тогда Personal GDB может оказаться лучше. Если вы планируете только выполнять некоторые запросы, но в первую очередь будете визуализировать пространственные данные, тогда производительность определенно падает на стороне файловой базы данных.