Аргумент, что «хранимый процесс намного быстрее, чем LINQ», немного нечеткий. Речь идет о запуске одной хранимой процедуры или нескольких хранимых процедур с использованием одного и того же соединения с базой данных? Мы говорим об использовании курсоров или транзакций? Некоторые подробности будут очень полезны.
Насколько я понимаю, LINQ to SQL полезен для работы с данными, которые были возвращены вашему приложению с сервера базы данных, или для подачи команд на сервер базы данных с использованием более синтаксического синтаксиса SQL. Тип и количество операций, вероятно, будут иметь существенное влияние на производительность одной операции против другой.
Я сам (исходя из своего ограниченного опыта) придерживаюсь мнения, что хранимые процедуры всегда должны быть быстрее, поскольку они локально располагаются вместе с самими данными, а вы убираете издержки любого сетевого трафика, который может потребоваться для вашего приложения совершать повторные звонки на сервер. (При установлении соединения всегда есть что-то необходимое.) Но это можно уменьшить с помощью оптимизации.
Как я уже сказал, требуется уточнение.
РЕДАКТИРОВАТЬ: В своем посте я имею в виду сквозную производительность, а не производительность SQL, который генерирует LINQ, по сравнению с SQL в хранимых процедурах.