Saltar al contenido

MS SQL Server: ¿Alguna vez se ejecutan varias consultas en un lote en paralelo y, de ser así, qué sucede cuando la segunda consulta depende de la primera?

Este team especializado pasados muchos días de investigación y recopilar de datos, encontramos la solución, deseamos que te sea de utilidad en tu trabajo.

Solución:

Las instrucciones por lotes solo se ejecutan en serie en el orden en que aparecen en el lote.

Ahora, si tiene dos declaraciones enviadas al servidor por dos lotes diferentes, voluntad funcionar de forma independiente y esencialmente simultánea (bloqueo y enganche a un lado).

Tomemos por ejemplo el siguiente código:

CREATE TABLE #t
(
    i int
);

INSERT INTO #t (i) VALUES (0);

los CREATE TABLE siempre se ejecuta antes de la INSERT INTO declaración. Considera esto:

SELECT 1;

SELECT 2;

El código anterior siempre se ejecutará en orden, es decir SELECT 1 carreras primeroluego, después de que se complete, SELECT 2 carreras.

Hay varias formas en que se pueden ejecutar lotes independientes simultáneamente, incluido el uso de Conjuntos de resultados activos múltiples, o MARS, sin embargo, ninguno de ellos afecta el procesamiento en serie de declaraciones dentro de un solo lote.

De los comentarios:

La respuesta “no” no es específica de SQL Server. Cualquier sistema de base de datos relacional que respete las reglas de ACID debe ejecutar sentencias en un lote secuencialmente, o al menos comportarse como si lo hiciera. En la práctica, se necesitaría un motor muy inteligente para paralelizar un lote (a diferencia de una declaración individual) sin que esto se note, pero si existiera, su segundo escenario hipotético tampoco sería motivo de preocupación: las reglas lo prohibirían. la primera declaración de ver los resultados de la segunda. – jeroen-mostert

Puedes añadir valor a nuestra información dando tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *