Учитывая правильный путь между хранимой процедурой и кодом уровня бизнес-логики C # - PullRequest
0 голосов
/ 29 марта 2012

Я использую управление JQGrid.Он очень мощный и многофункциональный.

Теперь я должен рассмотреть две вещи.

  • Сортировка данных в сетке
  • Поиск

Моя проблема в том, что у меня есть два варианта решения этой проблемы.

Один - использовать методы C # LinqExtensions.

public static class LinqExtensions
{
    public static IQueryable<T> OrderBy<T>(this IQueryable<T> query, string sortColumn, string direction)
    {
        ...
    }

    public static IQueryable<T> Where<T>(this IQueryable<T> query,
        string column, object value, WhereOperation operation)
    {
        ....
    }
}

Другой - использовать хранимые процедуры, которые позволяют анализировать значения параметров вкоторый включал критерии сортировки и поиска.

Если я буду использовать второй вариант, мне больше не нужно полагаться на класс LinqExtension.

Какой вариант будет наилучшим, когда речь заходит о производительности веб-приложения ибольшой объем данных?

1 Ответ

1 голос
/ 29 марта 2012

Оба подхода хороши и могут работать для любого приложения в реальном времени.Несколько моментов по поводу обоих подходов.

StoredProcedure: Гораздо мощнее для компиляции.Напишите SP, чтобы он передавал ваши записи в соответствии с поиском и сортировкой.Используйте CTE, чтобы улучшить производительность еще больше.Для получения более подробной информации см. http://www.sqlteam.com/article/server-side-paging-using-sql-server-2005.

Этот подход повысит производительность, если ваша база данных содержит много записей.

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

Мой личный выбор будет первым подходом.

Надеюсь, это поможет.

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