Щоб відповісти на першу частину вашого запитання, я думаю, що це допомагає переглянути додатковий текст у довідковому файлі «Створення індексів атрибутів» про індекси багато стовпців.
Порядок, у якому поля відображаються в індексі багатоколонок, є важливим. У індексі багатоколонок зі стовпцем А, що передує стовпцю B, стовпець A буде використаний для проведення початкового пошуку. Крім того, такий індекс буде набагато кориснішим для запитів, що стосуються лише стовпця А, ніж для запитів, що стосуються лише стовпця B.
Створіть індекс багато стовпців на A і B. Цей індекс, як правило, буде більш ефективним для запитів, що включають обидва стовпці. Для запитів, що включають лише A, цей індекс був би повільнішим, ніж індекс лише для A. Цей індекс буде мало корисний для запитів, що включають лише B. Для компенсації можна створити додатковий індекс на B.
Обидва ці уривки показують, що багатоколонкові індекси краще для спеціалізованого використання. Крім того, використання такого індексу для сортування лише по одному з включених стовпців може насправді пошкодити продуктивність. З цієї причини, ймовірно, будуть потрібні окремі індекси стовпців для кожного з атрибутів, включених до індексу багато стовпців.
Я знайшов посилання на старий, але цікавий документ ESRI із зазначенням 9 причин вибору Файлу через персональний GDB . Він цікавий тим, що він конкретно називає ефективність як одну з причин. Частина цього підвищення продуктивності пов'язана з файловою системою зберігання даних. Я думаю, що це може також зіграти через відсутність підтримки у багатьох стовпцях. На відміну від персонального GDB, який представляє собою єдиний файл, індекс у файлі GDB зберігається як окремий файл у структурі GDB. Це означає, що індексний файл та файл атрибутів для певного класу функцій повинні бути пов'язані та доступні разом. Я міг бачити, де індекс з декількома стовпцями призведе до стрибків назад і назад між файлами індексу та атрибутів і, можливо, спричинить показник ефективності, що переважає над збільшенням ефективності індексації.
Оскільки вже існує значне підвищення продуктивності роботи з File GDB над Personal GDB, впроваджувати індекс багато стовпців, мабуть, не варто.
В моєму досвіді роботи з обома типами GDB я бачив, що персональний GDB працює приблизно на 50% більше, ніж файл. Виходячи з наданих вами даних щодо файлу GDB, якщо ви переходили в PGDB, ви, ймовірно, отримали персональний GDB ~ 300 Мб. З того, що я бачив, робота з базами даних MS Access, як в продуктах ESRI, так і окремо, полягає в тому, що ви починаєте бачити зниження продуктивності після того, як файли ".mdb" значно збільшаться в розмірі понад 100 Мб.
Інша проблема, ймовірно, полягає в тому, що навіть якщо ви зможете прискорити пошук атрибутів, ви побачите велику ефективність, пов’язану з переміщенням у кадрі даних та оновленням представлення даних. Шар просто не малюється так швидко, якби він був у PGDB. Ця стаття, яка порівнює типи баз геоданих, дає більше інформації про відмінності в продуктивності.
Як і в багатьох справах, найкращий вибір, зрештою, зводиться до того, що стосується вашого використання. Якщо ви хочете виконати багато операцій з базою даних, які ви хотіли б виконати, наприклад запити та оновлення, які ви можете робити в інтерфейсі доступу, то персональний GDB може бути кращим. Якщо ви плануєте лише виконати деякі запити, але в першу чергу буде візуалізувати просторові дані, то продуктивність безумовно падає на сторону File GDB.