Есть ли лучший подход, чем хранимая процедура SQL? - PullRequest
2 голосов
/ 27 октября 2011

Я создал хранимую процедуру GetNotifications, которая возвращает все уведомления для определенного пользователя.Другие разработчики используют этот SP во многих разных местах.

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

Я не могуизменить существующий SP, так как он используется.

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

Это то, что я могу сделать: создать новый SP, который внутренне вызывает GetNotifications, а затем реализовать пейджинг в возвращенном наборе результатов.Но тогда не будет ли это ненужной нагрузкой на сервер, поскольку GetNotifications вернет все результаты независимо от этого?

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

Ответы [ 2 ]

8 голосов
/ 27 октября 2011

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

3 голосов
/ 27 октября 2011

Есть один сохраненный процесс, который принимает 2 параметра: @PageNumber, @ RowsPerPage

Если передается 0 для обоих параметров, возвращаются все строки, в противном случае выполняется разбиение на страницы.

Обновите существующий код так, чтобы он передавался в 0/0 для аргументов, тогда ваш новый код может передавать действительные значения, если / когда он хочет подкачки.

Как предлагается в комментариях, если вы задаете значения по умолчанию 0/0 для параметров, вам даже не нужно обновлять существующий код.

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