¿No consumen mucha memoria los procedimientos almacenados?
Ventajas:
1 A medida que la aplicación continúa cambiando y se agregan y eliminan funciones, el código del procedimiento almacenado T-SQL se volverá cada vez más complejo. Los procedimientos complejos y almacenados proporcionan una ubicación alternativa para encapsular este código.
2. Plan de ejecución (el procedimiento almacenado se compilará cuando se ejecute por primera vez, lo que producirá un plan de ejecución; en realidad, lo que Microsoft SQL Server debe hacer para obtener los resultados especificados por T-SQL en el archivo almacenado). registro de pasos del procedimiento). El almacenamiento en caché mejora el rendimiento.
.....Pero en las versiones más nuevas de SQL Server, los planes de ejecución de todos los lotes de T-SQL se almacenarán en caché, independientemente de si están en procedimientos almacenados y, por lo tanto, no existen ventajas comparativas.
3. Los procedimientos almacenados se pueden utilizar para reducir el tráfico de la red. El código del procedimiento almacenado se almacena directamente en la base de datos, por lo que no genera una gran cantidad de tráfico de código T-sql.
4. El uso de procedimientos almacenados puede mejorar la reutilización de los planes de ejecución y, al utilizar llamadas a procedimientos remotos (RPC) para procesar procedimientos almacenados en el servidor, se puede mejorar el rendimiento. La forma en que RPC encapsula parámetros e invoca procedimientos del lado del servidor facilita que el motor encuentre un plan de ejecución coincidente y simplemente inserte valores de parámetros actualizados.
5. Alta capacidad de mantenimiento, el tiempo y el esfuerzo necesarios para actualizar los procedimientos almacenados suelen ser menores que los de cambiar, probar y volver a implementar ensamblajes.
6. Código optimizado y consistente, los procedimientos almacenados se pueden utilizar en diferentes lugares del código de la aplicación.
7. Mejor control de versiones: mediante el uso de Microsoft Visual SourceSafe u otras herramientas de control de código fuente, puede restaurar o hacer referencia fácilmente a versiones antiguas de procedimientos almacenados.
8. Seguridad mejorada:
a. Al otorgar a los usuarios acceso a procedimientos almacenados en lugar de procedimientos almacenados basados en tablas, pueden proporcionar acceso a datos específicos;
b. Seguridad de código mejorada para evitar la inyección de SQL (pero no completamente resuelta, por ejemplo, añadiendo lenguaje de manipulación de datos, DML, a los parámetros de entrada);
c. un parámetro de procedimiento almacenado como parte de una estrategia de defensa en profundidad para validar el tipo de valores proporcionados por el usuario (pero no es infalible y aún se debe realizar una validación adicional antes de pasar a la base de datos).
Desventajas:
1. Si el alcance del cambio es lo suficientemente grande como para requerir cambiar los parámetros de entrada al procedimiento almacenado o cambiar los datos que devuelve, entonces aún necesita actualizar. el Código para agregar parámetros, actualizar llamadas GetValue(), etc. Esto puede resultar engorroso.
2. Portabilidad deficiente
Debido a que los procedimientos almacenados vinculan la aplicación a SQL Server, el uso de procedimientos almacenados para encapsular la lógica empresarial limita la portabilidad de la aplicación. Si la portabilidad de las aplicaciones es importante en su entorno, encapsular la lógica empresarial en un nivel intermedio que no sea específico de RDBMS puede ser una mejor opción.
Sin problemas de consumo de memoria