Существует ли для LINQ какой-либо вид индексации, похожий на Rushmore от FoxPro? [Дубликат]

На этот вопрос уже есть ответ:

Я работал с базами данных FoxPro, которая использует технологию оптимизации Rushmore , и я хотел узнать, есть ли какая-либо технология оптимизации для LINQ.

Я не ищу это в LINQ-to-SQL, потому что Rushmore фактически ассимилировался в SQL Server и отвечает за часть скорости, связанной с индексами.

Я хочу знать для LINQ-to-Objects, есть ли что-то похожее на Rushmore или оптимизацию производительности, связанную с индексами, в SQL Server?


Этот вопрос на самом деле не является дубликатом, потому что 1 .) Rushmore автоматически оптимизировал ваши выражения (и если вы делаете это с I4O, это делается вручную), потому что 2). был растровый компонент, который позволял быстро комбинировать несколько индексов в выражениях (и имел хорошую производительность), и потому 3). технология работает для таблиц, которые не помещаются в памяти (в данном случае это было бы плюсом).

-10
задан MicroservicesOnDDD 23 August 2019 в 13:42
поделиться

2 ответа

Нет никакого Оптимизатора запросов и никаких Индексов в Linq к объектам. Можно использовать ToDictionary, ToLookup, методы расширения ToHashset для создания "индексов" по наборам в оперативной памяти, и можно создать отсортированные наборы объектов.

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

2
ответ дан 9 September 2019 в 21:05
поделиться

(Я просто думаю вслух и был бы путаницей как комментарием)

, оптимизация Rushmore была в основном о выборе корректных индексов, and\or не используют индекса вообще и действительно немного отображают индексацию на лету. В то время как это - хорошая техника, я думаю, что базы данных добрались для ускорения через их собственные различные приемы помимо самих индексов. Например, ответвление в ansi sql, индексе диапазона в postgreSQL, черепки - немногие для именования. При использовании Linq против конкретного бэкенда Вы использовали бы возможности того бэкенда (включая Rushmore при использовании Linq Для VFP).

Для Linq К Объектам, нет такой вещи AFAIK, но как разработчик Вы могли взять на себя ответственность записи его максимально оптимизированный и если Вы думаете, L2O в вещи памяти, Вам, возможно, не понадобился бы он так, как Вы делаете с базой данных. Даже с Rushmore, мы брали на себя ответственность попытки альтернативных способов запросить для лучшей производительности.

(Вам отметили вопрос как "Linq", я надеялся бы, что Joseph Albahari - автор .NET xx вкратце будет видеть его и предоставлять ответ подробно)

-2
ответ дан 9 September 2019 в 21:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: