Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Performances SQL-Server :Qu'est-ce qui est plus rapide, une procédure stockée ou une vue ?

Les procédures stockées (SP) et les vues SQL sont des "bêtes" différentes, comme indiqué à plusieurs reprises dans cet article.

Si nous excluons certaines considérations de performances [généralement mineures, sauf pour les cas marginaux] associées à la mise en cache du plan de requête, le temps associé à la liaison à une procédure stockée et autres, les deux approches sont dans l'ensemble équivalentes, les performances- sage. Cependant...

Une vue est limitée à tout ce qui peut être exprimé dans une seule instruction SELECT (enfin, éventuellement avec des CTE et quelques autres astuces), mais en général, une vue est liée à des formes déclaratives de requêtes . Une procédure stockée, d'autre part, peut utiliser diverses constructions de type procédural (ainsi que les déclaratifs), et par conséquent, en utilisant les SP, on peut créer à la main un moyen de résoudre une requête donnée qui peut être plus efficace que ce que l'optimiseur de requêtes de SQL-Server aurait pu faire (sur la base d'une seule requête déclarative). Dans ces cas, un SP peut être beaucoup plus rapide (mais attention... l'optimiseur est assez intelligent, et il ne faut pas grand-chose pour rendre un SP beaucoup plus lent que la vue équivalente.)

Outre ces considérations de performances, les SP sont plus polyvalents et permettent un plus large éventail de requêtes et d'actions que les vues.