¿Cuáles son las funciones, ventajas, desventajas y ámbito de aplicación de los procedimientos almacenados?
1. Si desea cambiar los datos devueltos por el procedimiento almacenado, aún necesita actualizar el código en el programa para agregar parámetros, actualizar las llamadas GetValue (), etc., lo cual puede resultar tedioso.
2. Portabilidad deficiente
El uso de procedimientos almacenados para encapsular la lógica empresarial limitará la portabilidad de la aplicación porque vinculan la aplicación a SQL Server. Ventajas 1. A medida que una aplicación cambia con el tiempo, se agregan y eliminan funciones, el código de procedimiento almacenado T-SQL se vuelve más complejo y los procedimientos almacenados proporcionan un lugar alternativo para encapsular este código. 2. Plan de ejecución (el procedimiento almacenado se compilará cuando se ejecute por primera vez, lo que dará como resultado un plan de ejecución; esencialmente un registro de los pasos que debe seguir Microsoft SQL Server para obtener los resultados especificados por T-SQL en el procedimiento almacenado). 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 almacenan en caché, independientemente de si están en procedimientos almacenados, por lo que no hay ninguna ventaja comparativa. 3. Se pueden utilizar procedimientos almacenados para reducir el tráfico de la red. El código de procedimiento almacenado se almacena directamente en la base de datos, por lo que no hay mucho tráfico de código de declaración T-SQL. 4. El uso de procedimientos almacenados puede mejorar la tasa de 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 y llama a 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 mantenibilidad. Actualizar procedimientos almacenados normalmente requiere menos tiempo y esfuerzo que cambiar, probar y volver a implementar ensamblajes. 6. El código es optimizado y coherente, y se puede utilizar un procedimiento almacenado en diferentes ubicaciones del código de la aplicación. 7.7 Mejor control de versiones: puede restaurar o hacer referencia fácilmente a versiones anteriores de procedimientos almacenados utilizando Microsoft Visual SourceSafe u otras herramientas de control de código fuente. 8. Mejorar la seguridad: a. Al otorgar a los usuarios acceso a procedimientos almacenados (en lugar de procedimientos almacenados basados en tablas), los usuarios pueden acceder a datos específicos. b. Mejorar la seguridad del código y evitar la inyección de SQL (pero no está completamente resuelto, por ejemplo); c. Clase SqlParameter La clase SqlParameter especifica el tipo de datos del parámetro del procedimiento almacenado como parte de una estrategia de defensa en profundidad para validar los tipos de valores proporcionados por el usuario (pero no es infalible y aún se debe realizar una validación adicional antes de pasar a). Desventaja 1). Si el alcance del cambio es lo suficientemente grande como para requerir cambios en los parámetros ingresados a un procedimiento almacenado, o cambios en los datos devueltos por un procedimiento almacenado, aún necesitará actualizar el código en el ensamblado. agregar parámetros, actualizar llamadas GetValue (), etc., lo cual se espera que sea más problemático en este momento.
2. Portabilidad deficiente Dado que los procedimientos almacenados vinculan la aplicación a SQL Server, el uso de procedimientos almacenados para encapsular la lógica empresarial limitará la portabilidad de la aplicación.