Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
En este artículo se proporcionan sugerencias para desarrollar soluciones de grupo de SQL dedicadas mediante la implementación de procedimientos almacenados.
Qué esperar
El grupo de SQL dedicado admite muchas de las características de T-SQL que se usan en SQL Server. Lo más importante es que haya características específicas de escalabilidad horizontal que puede usar para maximizar el rendimiento de la solución.
Además, para ayudarle a mantener la escala y el rendimiento del grupo de SQL dedicado, hay características y funcionalidades adicionales que tienen diferencias de comportamiento.
Introducción a los procedimientos almacenados
Los procedimientos almacenados son una excelente manera de encapsular eficientemente el código SQL, que se almacena cerca de los datos del grupo de SQL dedicado. Los procedimientos almacenados también ayudan a los desarrolladores a modularizar sus soluciones mediante la encapsulación del código en unidades administrables, lo que facilita una mayor reutilización del código. Cada procedimiento almacenado también puede aceptar parámetros para que sean aún más flexibles.
El grupo de SQL dedicado proporciona una implementación de procedimientos almacenados simplificada y optimizada. La mayor diferencia en comparación con SQL Server es que el procedimiento almacenado no es código compilado previamente.
En general, en el caso de los almacenes de datos, el tiempo de compilación es pequeño en comparación con el tiempo necesario para ejecutar consultas en grandes volúmenes de datos. Es más importante asegurarse de que el código del procedimiento almacenado está optimizado correctamente para consultas grandes.
Sugerencia
El objetivo es ahorrar horas, minutos y segundos, no milisegundos. Por lo tanto, resulta útil pensar en procedimientos almacenados como contenedores para la lógica de SQL.
Cuando un grupo de SQL dedicado ejecuta el procedimiento almacenado, las instrucciones SQL se analizan, traducen y optimizan en tiempo de ejecución. Durante este proceso, cada instrucción es transformada en consultas distribuidas. El código SQL que se ejecuta en los datos es diferente de la consulta enviada.
Anidar procedimientos almacenados
Cuando los procedimientos almacenados llaman a otros procedimientos almacenados o ejecutan SQL dinámico, se dice que la invocación interna de código o de procedimientos almacenados se anida.
El grupo de SQL dedicado admite un máximo de ocho niveles de anidamiento. En cambio, el nivel de anidamiento en SQL Server es 32.
La llamada al procedimiento almacenado de nivel superior es igual al nivel de anidamiento 1.
EXEC prc_nesting
Si el procedimiento almacenado también realiza otra llamada EXEC, el nivel de anidamiento aumentará a 2.
CREATE PROCEDURE prc_nesting
AS
EXEC prc_nesting_2 -- This call is nest level 2
GO
EXEC prc_nesting
Si el segundo procedimiento ejecuta SQL dinámico, el nivel de anidamiento aumenta a tres.
CREATE PROCEDURE prc_nesting_2
AS
EXEC sp_executesql 'SELECT 'another nest level' -- This call is nest level 2
GO
EXEC prc_nesting
El grupo de SQL dedicado no admite actualmente @@NESTLEVEL. Por lo tanto, debe realizar un seguimiento del nivel de anidamiento. Es poco probable que supere el límite de ocho niveles de anidamiento. Sin embargo, si lo hace, debe reutilizar el código para ajustarse a los niveles de anidamiento dentro de este límite.
INSERTAR.. EXECUTE
El grupo de SQL dedicado no permite consumir el conjunto de resultados de un procedimiento almacenado con una instrucción INSERT. Sin embargo, hay un enfoque alternativo que puede usar. Para obtener un ejemplo, consulte el artículo sobre tablas temporales.
Limitaciones
Hay algunos aspectos de los procedimientos almacenados de Transact-SQL que no se implementan en el pool SQL dedicado, los cuales son los siguientes:
- procedimientos almacenados temporales
- procedimientos almacenados numerados
- procedimientos almacenados extendidos
- Procedimientos almacenados CLR
- opción de cifrado
- opción de replicación
- parámetros con valores de tabla
- parámetros de solo lectura
- parámetros predeterminados
- contextos de ejecución
- Instrucción de devolución
Pasos siguientes
Para obtener más sugerencias sobre desarrollo, vea la información general sobre desarrollo.