Questão FC372908
A troca de contexto é a ocorrência de chaveamento entre a engine SQL e a engine PL/SQL durante a execução de queries ou blocos PL/SQL. Essa troca é invocada sempre que, dentro de u
Linguagem SQL
FCC · 2018
A troca de contexto é a ocorrência de chaveamento entre a engine SQL e a engine PL/SQL durante a execução de queries ou blocos PL/SQL. Essa troca é invocada sempre que, dentro de um bloco PL/SQL, executa-se uma query ou um comando DML. Se executados isoladamente, os comandos INSERT, DELETE ou UPDATE, por exemplo, costumam ter pouco ou mesmo nenhum impacto na performance, mas quando executados em loops, o efeito das trocas de contexto se torna cumulativo e o prejuízo na performance do procedimento se torna bem evidente.
Para evitar esse prejuízo, o Oracle 11g implementa um comando cujo objetivo é enviar ao servidor um lote de comandos DML de uma única vez, utilizando apenas uma troca de contexto. Trata-se do
- FORNEXT.
- FETCH FIRST.
- FORALL.
- MAXLOOP.
- LOOPALL.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A alternativa correta é FORALL. Esse comando PL/SQL foi criado para reduzir o custo das trocas de contexto entre a engine SQL e a engine PL/SQL quando muitos comandos DML precisam ser executados.
Em vez de executar um INSERT/UPDATE/DELETE a cada iteração de um loop (causando múltiplas trocas), o FORALL envia um lote de operações ao servidor numa única interação, melhorando significativamente a performance.
Sintaxe resumida: FORALL index IN bounds_clause dml_statement;. Opcionalmente pode usar SAVE EXCEPTIONS para tratar erros individuais sem abortar todo o lote.
Use coleções PL/SQL (arrays) como fonte dos valores e prefira FORALL sempre que for executar DML em massa dentro de procedimentos. Isso torna o código mais eficiente e escalável.
Conteúdo do catálogo FC Concursos · Atualizado em