Я загрузил данные GeoPlanet из Yahoo и обнаружил, что в файле геопланет_places_7.6.0.tsv содержится 5 653 969 строк данных.
Это означает, что при отсутствии индекса вы выполняете «полное сканирование таблицы» более 5 миллионов записей, чтобы получить 50 штатов США.
При запросе штатов внутри страны, вероятно, наиболее полезным будет следующий индекс:
... EnsureIndex ("Iso", "Place_Type");
Не уверен, почему вы хотите искать все "Штаты" без указания страны, но для этого вам понадобится другой индекс.
Иногда, когда используется сортировка, может быть полезно, чтобы индекс соответствовал порядку сортировки. Например, поскольку вы сортируете по «Имени», индекс может быть:
... EnsureIndex ("Iso", "Place_Type", "Name");
Однако, только с 50 состояниями сортировка, вероятно, будет очень быстрой в любом случае.
Я сомневаюсь, что любая ваша низкая производительность связана с драйвером C #, но если после добавления индексов у вас все еще есть проблемы с производительностью, сообщите нам.