O SQL Server executa consultas em paralelo? Em outras palavras, se eu executar uma consulta pesada que leva 10 segundos para executar e, ao mesmo tempo, iniciar outra consulta pesada que leva 10 segundos, a segunda consulta realmente será iniciada após 10 segundos ou iniciará as duas ao mesmo tempo ?
sql-server
user369117
fonte
fonte
Respostas:
Você quer dizer "simultaneamente". A resposta é sim, com advertências que são amplas demais para serem discutidas aqui. De fato, o objetivo principal do RDBMS é a simultaneidade.
"Paralelo" tem um significado preciso no SQL Server: "uma única consulta é distribuída por mais de um núcleo de processador".
fonte
Contanto que sua primeira consulta não bloqueie uma tabela necessária em sua segunda consulta, elas serão executadas em paralelo.
fonte
As consultas são executadas em paralelo, na medida do possível.
O banco de dados usa bloqueios diferentes para leitura e gravação, em linhas, blocos ou tabelas inteiras, dependendo do que você faz.
Se uma consulta lê apenas de uma tabela, outra consulta também pode ler da mesma tabela ao mesmo tempo. Se uma consulta atualizar alguns registros em uma tabela, outra consulta ainda poderá ler a tabela, desde que não leia nenhum registro bloqueado para a atualização.
fonte
Depende dos dados - geralmente eles são executados em paralelo, mas alguns cenários de bloqueio podem fazer uma consulta esperar por outra. Obviamente, se o subsistema de disco estiver fraco e você não tiver RAM suficiente, várias consultas poderão ser mais lentas.
fonte
DDL (linguagem de definição de dados) funciona paralelamente como a instrução SELECT
DML (linguagem modificada de dados) não funciona paralelamente como a instrução INSERT e UPDATE
fonte
Se você estiver escrevendo as consultas como abaixo ... será executado paralelamente
Nota - Sua consulta paralela entrará no estado de espera, caso haja inserção em massa em uma tabela
fonte