sql >> Base de Datos >  >> RDS >> Sqlserver

Rendimiento de SQL-Server:¿Qué es más rápido, un procedimiento almacenado o una vista?

Los procedimientos almacenados (SP) y las vistas SQL son "bestias" diferentes, como se indica varias veces en esta publicación.

Si excluimos algunas consideraciones de rendimiento [normalmente menores, excepto en casos marginales] asociadas con el almacenamiento en caché del plan de consulta, el tiempo asociado con el enlace a un procedimiento almacenado y demás, los dos enfoques son en general equivalentes, rendimiento- sabio. Sin embargo...

Una vista se limita a lo que se pueda expresar en una sola declaración SELECT (bueno, posiblemente con CTE y algunos otros trucos), pero en general, una vista está vinculada a formas declarativas de consultas . Un procedimiento almacenado en el otro puede usar varias construcciones de tipo de procedimiento (así como los declarativos), y como resultado, usando SP, uno puede elaborar a mano una forma de resolver una consulta dada que puede ser más eficiente de lo que pudo haber hecho el optimizador de consultas de SQL-Server (sobre la base de una única consulta declarativa). En estos casos, un SP puede ser mucho más rápido (pero cuidado... el optimizador es bastante inteligente y no se necesita mucho para hacer que un SP sea mucho más lento que la vista equivalente).

Aparte de estas consideraciones de rendimiento, los SP son más versátiles y permiten una gama más amplia de consultas y acciones que las vistas.