Banco de Dados: A ideia do paralelismo intraconsulta é permitir a execução paralela de suas operações. Considere o seguinte comando: Select From T1 Inner Join T2 on T1.a = T2.a Inner Join T3 on T2.b = T3.a Inner Join T4 on T3.b = T4.a Levando-se em conta as técnicas de paralelismo intraconsulta avalie as asserções a seguir e a relação proposta entre elas I. Uma possível execução seria executar em paralelo a junção de T1 com T2 e a de T3 com T4 Porque II. Como as junções não dependem uma da outra pode ser aplicado o paralelismo independente. Quanto as afirmativas podemos notar que:
A ideia do paralelismo intraconsulta é permitir a execução paralela de suas operações. Considere o seguinte comando: Select * From T1 Inner Join T2 on T1.a = T2.a Inner Join T3 on T2.b = T3.a Inner Join T4 on T3.b = T4.a
Levando-se em conta as técnicas de paralelismo intraconsulta avalie as asserções a seguir e a relação proposta entre elas
I. Uma possível execução seria executar em paralelo a junção de T1 com T2 e a de T3 com T4 Porque II. Como as junções não dependem uma da outra pode ser aplicado o paralelismo independente.
Quanto as afirmativas podemos notar que:
A) As duas afirmações estão corretas e a segunda justifica a primeira.
B) As duas afirmações estão corretas e a segunda não justifica a primeira.
C) A primeira afirmação é correta e a segunda falsa.
D) A primeira afirmação é falsa e a segunda correta.
E) As duas afirmações são falsas.
Vamos analisar as dependências entre as junções do comando SQL:
A consulta é:
- (pela condição )
- depois junta com (pela condição )
- depois junta com (pela condição )
Isso forma uma cadeia de dependências:
- Para fazer não preciso de nenhuma outra tabela além de e .
- Para fazer a junção com , eu preciso do atributo de (T2.b), ou seja, o resultado (ou pelo menos a participação) de na junção anterior influencia diretamente a próxima etapa.
- Para fazer a junção com , eu preciso do atributo de (T3.b), que por sua vez está ligado à etapa anterior.
Agora, avaliando as asserções:
I. “Uma possível execução seria executar em paralelo a junção de T1 com T2 e a de T3 com T4.”
- Essa estratégia (fazer e, ao mesmo tempo, ) só seria válida como plano “natural” se esses dois blocos fossem realmente independentes e depois pudessem ser combinados.
- Porém, o elo conecta diretamente os dois lados. Isso significa que o bloco envolvendo não é independente do bloco que envolve no sentido de decomposição em subconsultas independentes: o resultado final exige casar tuplas de com tuplas de .
- Portanto, a afirmação I é falsa como justificativa de paralelismo “por independência” entre as duas junções propostas.
II. “Como as junções não dependem uma da outra pode ser aplicado o paralelismo independente.”
- No geral, o paralelismo independente (inter-operator, entre operações) só se aplica quando há operações sem dependência de dados entre si.
- Nesta consulta, há dependências claras: a junção com depende da relação de junção com , e a com depende de .
- Assim, do ponto de vista das junções, elas dependem umas das outras em cadeia. Logo, a justificativa dada em II (de que “não dependem”) está incorreta.
Entretanto, observando a estrutura: a frase II conclui “pode ser aplicado paralelismo independente” se não houvesse dependência; como há dependência, a proposição II, do jeito que está escrita (“como não dependem...”), é falsa.
Reavaliando as alternativas, a combinação correta é: I falsa e II falsa.
Alternativa correta: (E).