Boa noite,
storage procedure, é procedimento armazenados, foi criado para ajudar no desempenho do Banco de dados, mas tem que ter cuidado para utilizar, pois ser utilizar muito vai consumir mais memoria gerando paginação o que não é bom para o SGBD.
sempre quando uma query é executada ele é primeiramente verificado pelo SGBD para verificar sem tem erro de sintaxe, depois ele é armazenado em cache onde quando pela segunda vez ele não é verificado o sintaxe sendo mais rápido a consulta.
O exemplo abaixo o select vai ser verificado e armazenado EM CACHE as 4 vezes
select * from entrega.destinatario
where tag=0001
select * from entrega.destinatario
where tag=0002
select * from entrega.destinatario
where tag=0003
select * from entrega.destinatario
where tag=0004
********criando procedure****************
create as procedure SP_SEL_Dest_Tag @Tag int
as
select * from entrega.destinatario
where tag=@Tag
na consulta abaixo ele é armazenado em cache apenas uma vez
*********executando**********
EXEC SP_SEL_Dest_Tag 0001; GO
EXEC SP_SEL_Dest_Tag 0002; GO
EXEC SP_SEL_Dest_Tag 0003; GO
EXEC SP_SEL_Dest_Tag 0004; GO
****É LOGICO QUE O STOAGE PROCEDURE TEM OUTRAS MUITAS UTILIDADES VALE a pena ESTUDAR SOBRE O MESMO.