Каков наилучший способ разработки системы, в которой пользователи могут создавать свои собственные критерии для поиска данных? Под «дизайном» я подразумеваю хранение данных, уровень доступа к данным и структуру поиска.
На самом деле мы проведем рефакторинг существующего приложения, написанного на C # и ASP .NET, и не хотим менять инфраструктуру. Нашей основной проблемой является производительность, и мы используем MSSQL и DevExpress для создания запросов. Некоторые запросы выполняются за 4-5 минут, и все столбцы, включенные в запросы, имеют индексы.
Когда я проверяю запросы, я вижу, что DevExpress создает слишком много предложений «существует», и меня это не устраивает, потому что я сомневаюсь, что некоторые из этих запросов пропускают некоторые индексы.
Какими могут быть альтернативы DevExpress? NHibernate или Entity Framework? Можем ли мы построить систему динамических критериев и сохранить их в базе данных в обоих?
А также нам нужно какое-нибудь альтернативное хранилище, такое как индекс lucene или база данных OLAP?