¿SQL Server ejecuta consultas en paralelo? En otras palabras, si ejecuto una consulta pesada que demora 10 segundos en ejecutarse, y al mismo tiempo inicio otra consulta pesada que demora 10 segundos, ¿la segunda consulta realmente comenzará después de 10 segundos o comenzarán ambas al mismo tiempo? ?
sql-server
usuario369117
fuente
fuente
Respuestas:
Te refieres a "concurrentemente". La respuesta es sí, con advertencias que son demasiado amplias para discutir aquí. De hecho, todo el punto de RDBMS es la concurrencia.
"Paralelo" tiene un significado preciso en SQL Server: "una sola consulta se distribuye en más de un núcleo de procesador".
fuente
Mientras su primera consulta no bloquee una tabla necesaria en su segunda consulta, se ejecutarán en paralelo.
fuente
Las consultas se ejecutan en paralelo, en la medida de lo posible.
La base de datos usa diferentes bloqueos para lectura y escritura, en filas, bloques o tablas enteras, dependiendo de lo que haga.
Si una consulta solo lee de una tabla, otra consulta también puede leer de la misma tabla al mismo tiempo. Si una consulta actualiza algunos registros en una tabla, es posible que otra consulta aún pueda leer de la tabla siempre que no lea ningún registro que se haya bloqueado para la actualización.
fuente
Depende de los datos: generalmente se ejecutan en paralelo, pero algunos escenarios de bloqueo pueden hacer que una consulta espere a otra. Por supuesto, si el subsistema de disco es débil y no tiene suficiente RAM, las consultas múltiples pueden ejecutarse más lentamente.
fuente
DDL (lenguaje de definición de datos) funciona en paralelo como la instrucción SELECT
DML (lenguaje modificado de datos) no funciona en paralelo como la instrucción INSERT y UPDATE
fuente
Si está escribiendo las consultas como a continuación ... se ejecutará paralelamente
Nota : su consulta paralela vendrá en estado de espera en caso de que haya una inserción masiva en una tabla
fuente