ver tipos resueltos procedimientos procedimiento ejercicios ejemplos ejemplo ejecutar codigo almacenados almacenado sql stored-procedures

sql - resueltos - tipos de procedimientos almacenados



Son procedimientos almacenados más rápidos para consultas simples (1)

Razones para usar procedimientos almacenados:

  • Reduzca el tráfico de red : debe enviar la declaración SQL a través de la red. Con sprocs, puede ejecutar SQL en lotes, que también es más eficiente.
  • Plan de consulta de almacenamiento en caché : la primera vez que se ejecuta sproc, SQL Server crea un plan de ejecución, que se almacena en caché para su reutilización. Esto es particularmente eficaz para pequeñas consultas que se ejecutan con frecuencia.
  • Posibilidad de usar parámetros de salida : si envía SQL en línea que devuelve una fila, solo puede recuperar un conjunto de registros. Con sprocs puede recuperarlos como parámetros de salida, que es considerablemente más rápido.
  • Permisos : cuando envía SQL en línea, debe otorgar permisos en la (s) tabla (s) al usuario, lo que le otorga mucho más acceso que simplemente otorgar permiso para ejecutar un sproc
  • Separación de lógica : elimine el código generador de SQL y segregalo en la base de datos.
  • Posibilidad de editar sin volver a compilar : esto puede ser controvertido. Puede editar el SQL en un sproc sin tener que volver a compilar la aplicación.
  • Encuentre dónde se usa una tabla : con sprocs, si desea encontrar todas las declaraciones SQL que hagan referencia a una tabla en particular, puede exportar el código sproc y buscarlo. Esto es mucho más fácil que tratar de encontrarlo en el código.
  • Optimización : para un administrador de bases de datos es más fácil optimizar el SQL y ajustar la base de datos cuando se utilizan los sprocs. Es más fácil encontrar índices faltantes y tal.
  • Ataques de inyección SQL : SQL en línea correctamente escrito puede defenderse de los ataques, pero los sprocs son mejores para esta protección.

Posible duplicado:
¿Son los procedimientos almacenados más eficientes, en general, que las declaraciones en línea en los RDBMS modernos?

Si estoy ejecutando un procedimiento almacenado para consultas básicas, como:

SELECT ColA, ColB FROM MyTable WHERE ID = 123; SELECT * FROM MyTable,OtherTable WHERE MyTable.ID = OtherTable.ID ORDER BY CreatedAt desc

¿Hay algún beneficio al convertir esas consultas a un procedimiento almacenado si se ejecutan con frecuencia? ¿Cuándo es mejor utilizar un aprovisionamiento almacenado? ¿Cuándo no debería usar un procedimiento almacenado?

¿Qué tipo de optimizaciones ocurre si crea y ejecuta un procedimiento almacenado? ¿Me puede recomendar algún recurso que me ayude a comprender cuándo y por qué debo usarlos?

Si hace alguna diferencia, mi base de datos es MS SQL 2005 db.