Questão
ID 564874Disciplina: Tecnologia da Informação
Assunto: Otimização Baseada em Custo
Ano: 2023 Banca: FUNDATEC - Fundação Universidade Empresa de Tecnologia e Ciências Órgão: Banco Regional de Desenvolvimento do Extremo Sul
O desaninhamento de subconsulta é uma otimização disponível no Oracle que converte uma subconsulta em uma junção na consulta externa, permitindo que o otimizador considere a(s) tabela(s) de subconsulta durante o caminho de acesso, método de junção e seleção de ordem de junção. As consultas (a) e (b) exemplificam respectivamente uma subconsulta ALL e uma subconsulta EXISTS. Os atributos dessas tabelas usadas podem ser inferidos a partir dessas consultas SQL:
(a) SELECT C.sobrenome, C.renda
FROM clientes C
WHERE C.codc <> ALL (SELECT V.codc FROM vendas V WHERE V.valor > 1000);
(b) SELECT C.sobrenome, C.renda
FROM clientes C
WHERE NOT EXISTS (SELECT 1 FROM vendas V WHERE V.valor > 1000 and V.codc = C.codc);
Considere as assertivas abaixo sobre a otimização baseada em desaninhamento de subconsultas no Oracle:
I. O recurso fundamental do desaninhamento de subconsultas é a conversão da subconsulta com processamento relacionado em outra equivalente com processamento não relacionado.
II. No caso de uma subconsulta ALL, o desaninhamento explora semi-join.
III. No caso de uma subconsulta NOT EXISTS, o desaninhamento explora o anti-join.
Quais estão corretas?