Производительность - Определяемый пользователем запрос / фильтр для поиска данных - PullRequest
0 голосов
/ 17 апреля 2010

Каков наилучший способ разработки системы, в которой пользователи могут создавать свои собственные критерии для поиска данных? Под «дизайном» я подразумеваю хранение данных, уровень доступа к данным и структуру поиска.

На самом деле мы проведем рефакторинг существующего приложения, написанного на C # и ASP .NET, и не хотим менять инфраструктуру. Нашей основной проблемой является производительность, и мы используем MSSQL и DevExpress для создания запросов. Некоторые запросы выполняются за 4-5 минут, и все столбцы, включенные в запросы, имеют индексы.

Когда я проверяю запросы, я вижу, что DevExpress создает слишком много предложений «существует», и меня это не устраивает, потому что я сомневаюсь, что некоторые из этих запросов пропускают некоторые индексы.

Какими могут быть альтернативы DevExpress? NHibernate или Entity Framework? Можем ли мы построить систему динамических критериев и сохранить их в базе данных в обоих?

А также нам нужно какое-нибудь альтернативное хранилище, такое как индекс lucene или база данных OLAP?

1 Ответ

0 голосов
/ 17 апреля 2010

Этот вопрос задавался ранее, включая здесь .

Проблема в том, что если ваши запросы теперь занимают 4-5 минут, представьте, насколько быстрее они будут выполняться, когда пользователи сами создают запросы (/ sarcasm). Я предлагаю вам составить несколько заранее определенных, хорошо настроенных запросов и позволить пользователям добавлять параметры или фильтры, но не позволяйте им создавать свои собственные запросы. Вы пожалеете об этом не только по соображениям производительности, но и потому, что они не поймут, как правильно ограничивать свои запросы, и получат неправильные ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...