Как насчет использования Raven DB для замены индексов в SQL Server? - PullRequest
2 голосов
/ 17 марта 2011

Я работаю над проектом с большими таблицами (10 миллионов записей) на сервере MS SQL, и нам нужно запросить эту таблицу с помощью очень сложных фильтров (которые охватывают 10+ столбцов) и отсортировать результаты по различным полям в зависимости от выбор пользователя в пользовательском интерфейсе.

Запросы выполняются немного медленно, так как нам нужно использовать временные таблицы внутри наших хранимых процедур, чтобы выполнить всю необходимую фильтрацию и сортировку.

Я думаю, я мог бы использовать процесс, который загружает ту часть таблицы, которую мы используем в части фильтра запроса в Raven DB, фактически заменяя хранимые процессы и индексы в SQL слоем Raven DB, который я могу запросить против.

Как вы думаете, мне следует потратить больше времени, чтобы выяснить, почему хранимые процессы работают медленно, и провести некоторую оптимизацию, или вы думаете, что подход Raven DB может дать мне больше преимуществ?

Ответы [ 3 ]

3 голосов
/ 17 марта 2011

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

Одна вещь, на которую вы должны обратить внимание: индексированные представленияЭто позволит вам создать вид слоя запроса, который вы описываете, но со встроенной функциональностью SQL Server.Так что работать должно быть намного легче (если не совсем весело!). Узнайте больше .

1 голос
/ 18 марта 2011

Вы всегда должны профилировать, чтобы определить , почему что-то идет медленно, прежде чем пытаться сделать это быстрее.

0 голосов
/ 22 марта 2011

Это зависит от ваших данных.Вы можете использовать денормализацию для уровня представления, если у вас есть сложные запросы.Без каких-либо объединений, только сортировка.

...