O SQL Server executa consultas em paralelo? Em outras palavras, se eu executar uma consulta pesada que leva 10 segundos para ser executada e ao mesmo tempo iniciar outra consulta pesada que leva 10 segundos, a segunda consulta realmente iniciará após 10 segundos ou ambas iniciarão ao mesmo tempo ?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Você quer dizer "simultaneamente". A resposta é sim, com ressalvas que são amplas demais para serem discutidas aqui. Na verdade, o ponto 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".
Contanto que sua primeira consulta não bloqueie uma tabela necessária em sua segunda consulta, elas serão executadas em paralelo.
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.
Depende dos dados - geralmente eles são executados em paralelo, mas alguns cenários de bloqueio podem fazer com que uma consulta espere por outra. Obviamente, se o subsistema de disco estiver fraco e você não tiver muita RAM, várias consultas poderão ser executadas mais lentamente.
DDL (linguagem de definição de dados) funciona paralelamente como instrução SELECT
DML (linguagem modificada de dados) não funciona paralelamente como instrução INSERT e UPDATE
Se você estiver escrevendo as consultas como abaixo... elas serão executadas paralelamente
Nota - Sua consulta paralela entrará em estado de espera no caso de qualquer inserção em massa em uma tabela