Stack Overflowers:Самая быстрая альтернатива Datatable.Select() для сужения кэшированных данных?
У меня есть функция поиска на веб-сайте моей компании (на основе .NET 2.0), которая позволяет сузить каталог товаров, используя до 9 различных полей. Прямо сейчас, после того, как вы сделаете свой выбор на интерфейсе, я создаю динамический запрос и ударяю по базе данных (SQL Server), чтобы получить полученный список номеров элементов.
Я бы хотел отойти от попадания в базу данных каждый раз и сделать все это в памяти для получения более быстрых результатов. В основном таблица «3500 - 4500 строк» с 10 столбцами: номер позиции (который может быть первичным ключом) и 9 полей атрибутов (которые повторяют значения для многих строк). Там может быть любое количество различных запросов между 9 столбцов, чтобы получить элементы, которые вы хотите:
- Столбец A = «Foo» и столбец D = «бар»
- Колонка B = «Foo» и столбца C = 'бар' И Колонка I = 'я'
- Колонка H = 'Foo'
- и т.д ...
на основании своих исследований, функция .Select(), кажется, как самый медленный путь к выполните поиск, но мне это кажется самым быстрым и простым способом выполнить сужая поиск, чтобы получить список номеров позиций:
MyDataSet.Select("Column B = 'foo' AND Column E = 'bar' AND Column I = 'me'")
В моем конкретном случае, какой метод вы предлагаете я использовать в качестве альтернативы, которая имеет такую же функциональность сужающейся и лучшую производительность, вместо разрешения на datatable.select () метод?
Извините, я должен был указать, что динамические запросы, которые я выполняю в настоящее время, довольно быстр, поскольку все индексируется правильно, я просто хочу, чтобы приложение запускалось еще быстрее, не переходя через провод вообще, если это мне не нужно , – NinjaBomb
@NinjaBomb: вы все равно будете проходить через провод (между клиентом и сервером) с помощью этого подхода. Все, чего вам следует избегать, - это поездка между сервером и базой данных (что ни в коем случае не должно быть для вас узким местом), и это дорого стоит большой памяти сервера. – MusiGenesis
Что думают эксперты о кэшировании наборов результатов, которые я получаю из базы данных, если кто-то повторяет тот же самый поиск за определенный промежуток времени? – NinjaBomb