Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Desempenho do SQL-Server:O que é mais rápido, um procedimento armazenado ou uma exibição?


Stored Procedures (SPs) e SQL Views são "feras" diferentes, conforme afirmado várias vezes neste post.

Se excluirmos algumas considerações de desempenho [normalmente menores, exceto para casos marginais] associadas ao armazenamento em cache do plano de consulta, o tempo associado à vinculação a um procedimento armazenado e tal, as duas abordagens são no geral equivalentes, desempenho- sábio. No entanto...

Uma visão é limitada ao que pode ser expresso em uma única instrução SELECT (bem, possivelmente com CTEs e alguns outros truques), mas em geral, uma visão está vinculada a formas declarativas de consultas . Um procedimento armazenado por outro pode usar várias construções de tipo de procedimento (assim como declarativas) e, como resultado, usando SPs, pode-se criar manualmente uma maneira de resolver uma determinada consulta que pode ser mais eficiente do que o otimizador de consulta do SQL-Server pode ter feito (com base em uma única consulta declarativa). Nesses casos, um SPs pode ser muito mais rápido (mas cuidado... o otimizador é bastante inteligente e não é preciso muito para tornar um SP muito mais lento que a visualização equivalente).

Além dessas considerações de desempenho, os SPs são mais versáteis e permitem uma gama mais ampla de consultas e ações do que as visualizações.