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