Questão 564882

Tecnologia da Informação · 2023

Questão

ID 564882

Disciplina: Tecnologia da Informação

Assunto: Full Tables Scan X Uso de Índices

Ano: 2023 Banca: FUNDATEC - Fundação Universidade Empresa de Tecnologia e Ciências Órgão: Banco Regional de Desenvolvimento do Extremo Sul


Considere a tabela EMPREGADOS definida abaixo em SQL.

Create table EMPREGADOS

(CODEMP INT PRIMARY KEY,

NOMEEMP VARCHAR(300) NOT NULL UNIQUE,

FUNCAO INT CHECK(FUNCAO BETWEEN 1 AND 5),

SALARIO FLOAT NOT NULL,

DEPTO INT NOT NULL);

Sobre esta tabela, foi definido um índice primário (codemp – chave primária), e dois índices secundários, um sobre nomeemp, e outro sobre funcao.

Uma pessoa do desenvolvimento reclamou à DBA que algumas de suas consultas sobre essa tabela estavam muito demoradas, e pediu apoio para melhoria do desempenho. A DBA examinou o plano de execução das consultas e, em vez de uma solução sobre o esquema da base de dados, sugeriu a reescrita das consultas.

ORIGINAL

REESCRITA

I.

SELECT NOMEEMP, FUNCAO, DEPTO

FROM EMPREGADOS

WHERE SUBSTR(NOMEEMP, 1, 5) =

'MARIA';

SELECT NOMEEMP, FUNCAO, DEPTO

FROM EMPREGADOS

WHERE NOMEEMP LIKE 'MARIA%';

II.

SELECT NOMEEMP

FROM EMPREGADOS

WHERE FUNCAO <> 5;

SELECT NOMEEMP

FROM EMPREGADOS

WHERE FUNCAO BETWEEN 1 and 4;

III.

SELECT DISTINCT NOMEEMP, SALARIO,

DEPTO

FROM EMPREGADOS

WHERE FUNCAO = 1;

SELECT NOMEEMP, SALARIO, DEPTO

FROM EMPREGADOS

WHERE FUNCAO = 1

Qual, dentre as consultas reescritas, melhorou o desempenho da consulta original porque resultou, no plano de consulta, em uma operação (mais eficiente) sobre um índice?

Alternativas da questão 564882
Pular para o conteúdo principal