Red de conocimiento informático - Conocimiento informático - ¿Cuáles son las funciones, ventajas, desventajas y ámbito de aplicación de los procedimientos almacenados?

¿Cuáles son las funciones, ventajas, desventajas y ámbito de aplicación de los procedimientos almacenados?

El usuario ejecuta un procedimiento almacenado especificando su nombre y parámetros (si el procedimiento almacenado tiene parámetros). Un procedimiento almacenado es una colección precompilada de sentencias SQL y sentencias de flujo de control opcionales que se almacenan con un nombre y se procesan como una unidad. Los procedimientos almacenados se almacenan en la base de datos y la aplicación los ejecuta una vez, lo que permite a los usuarios declarar variables, ejecución condicional y otras potentes funciones de programación. Los procedimientos almacenados se compilan en el servidor cuando se crean, por lo que se ejecutan más rápido que una única declaración SQL. Ventajas de los procedimientos almacenados 1. Los procedimientos almacenados solo se compilan cuando se crean y no es necesario volver a compilarlos cada vez que se ejecuta el procedimiento almacenado. Las declaraciones SQL generales deben compilarse cada vez que se ejecutan, por lo que el uso de procedimientos almacenados puede mejorar. Velocidad de ejecución de la base de datos. 2. Al realizar operaciones complejas en la base de datos (como Actualizar, Insertar, Consultar, Eliminar en varias tablas), esta operación compleja puede encapsularse en un procedimiento almacenado y usarse junto con el procesamiento de transacciones proporcionado por la base de datos. 3. Los procedimientos almacenados se pueden reutilizar, lo que reduce la carga de trabajo de los desarrolladores de bases de datos. 4. Alta seguridad. Solo se puede configurar un usuario para que tenga derecho a utilizar el procedimiento almacenado especificado. Desventajas: 1: 1. Si el alcance del cambio es. demasiado grande, es necesario cambiar los parámetros del procedimiento almacenado de entrada, o cambiar los datos devueltos por un procedimiento almacenado, aún necesita actualizar el código en el programa para agregar parámetros, actualizar las llamadas GetValue (), etc.

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.