Вам придется обрабатывать одинаковое количество записей и иметь одинаковое количество циклов в коде доступа к базе данных, независимо от того, возвращаете ли вы 30 наборов записей или 30 хранимых процедур, которые возвращают одни и те же данные.
При использовании подхода с 30 наборами записей будет небольшое повышение производительности, поскольку вам не нужно создавать команды и выполнять 30 различных хранимых процедур для извлечения данных.
Однако я считаю, что общее влияние на базу данных и приложение, особенно с точки зрения потребления памяти, будет более значительным при использовании подхода с 30 наборами записей. При таком подходе что-то (либо SQL Server, либо ваше приложение) должно где-то хранить извлеченные данные, пока код приложения обрабатывает их. Если вы используете подход sp, то при подходе sp данные, которые хранятся для обработки в любой заданной точке обработки, обычно будут существенно меньше.
Существует также потенциальная проблема с параллелизмом и блокировкой базы данных в отношении производительности. Если вы извлекаете все данные в одном sp, общая скорость извлечения данных может быть ниже из-за необходимости ждать, пока сняты блокировки, прежде чем переходить к следующему набору данных в сохраненном процессе. Это означает более высокое потребление памяти в течение более длительного периода времени. При использовании подхода sp поиск может блокироваться в течение того же промежутка времени, но потребление памяти в среднем будет ниже, поскольку что-то не должно содержать уже извлеченные данные до снятия блокировки.
Однако, если вы не выполняете десятки тысяч транзакций в час или ваши наборы записей содержат гигабайты данных, я не думаю, что изменение подхода окажет значительное влияние на ваше приложение, поэтому вам нужно будет выбрать то, что вы думаю, что лучше с точки зрения ремонтопригодности.