wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Banco de Dados - SQL - Otimização de Consultas

Total questions: 28

Worksheet time: 14mins

Name
Class
Date
1.

Em um banco de dados relacional, o objetivo principal da otimização de consultas é:

a)

compactar as maiores tabelas para economizar espaço de armazenamento.

b)

diminuir o número de atributos existentes em cada tabela do banco de dados.

c)

excluir todos os registros nos quais haja valores replicados.

d)

excluir todas as tabelas com uma quantidade de acessos menor do que o mínimo especificado.

e)

melhorar o desempenho das consultas submetidas ao banco de dados.

2.

A otimização de consultas realizada pelo SGBD através da ordenação das operações de álgebra relacional em uma árvore de consulta é chamada de otimização baseada em :

a)

regras heurísticas

b)

pipeline

c)

estimativas de custo.

d)

regras de execução.

e)

metadados

3.

Em relação aos componentes de um Sistema de Gerenciamento de Banco de Dados (SGBD), analise as três características abaixo.

I- Preocupa-se com o rearranjo e possível reordenação de operações, eliminando redundâncias e utilizando os algoritmos e índices corretos durante a execução.

II- Consulta o catálogo do sistema para obter informações estatísticas e outras informações físicas sobre os dados armazenados, gerando código executável que realiza as operações necessárias para a consulta.

III- Faz chamadas ao processador de tempo de execução.

Qual componente de um SGBD apresenta essas três características?

a)

Gerenciador de buffer.

b)

Compilador de consultas.

c)

Otimização de consultas.

d)

Processador de tempo de execução do banco de dados.

e)

Compilador DML.

4.

Durante o processo de otimização de consultas SQL, o otimizador utiliza várias condições simples em uma condição de seleção conjuntiva. A condição que estabelece a razão entre o número de registros que satisfazem uma dada condição e o número total de registros no arquivo é chamada de:

a)

facilidade.

b)

reatividade.

c)

seletividade.

d)

disjuntividade.

e)

computabilidade.

5.

Com o crescimento da tabela PESSOAS, um administrador notou degradação significativa na execução da consulta.

Para otimizar a busca realizada por essa consulta, convém criar um índice sobre as colunas:

a)

“id”, “nome” e “idade”.

b)

“nome” e “id”.

c)


“id” e “idade”.

d)

“profissao” e “idade”.

e)

“nome” e “profissao”.

6.

O processo de otimização automática de consultas SQL envolve a conversão da consulta original, em uma forma canônica, que, em algum aspecto, destina-se à obtenção de uma representação mais eficiente que a original.

a)

Certo

b)


Errado

7.

Uma das principais regras heurísticas da otimização de consultas é

a)

traduzir a consulta em uma sequência de operações relacionais.

b)

aplicar operações de seleção e projeção antes de aplicar a junção.

c)


montar uma árvore de consulta equivalente.

d)

representar a consulta em uma expressão de cálculo algébrico.

e)

aplicar as operações binárias antes da seleção.

8.

Com o crescimento de uma tabela, uma estratégia para otimizar consultas que usam ORDER BY col1, col2 é:

a)

criar índice nas colunas col1, col2 (índice composto).

b)

criar índice apenas em col2.

c)

usar GROUP BY no lugar de ORDER BY.

d)

aumentar o tamanho do buffer de aplicação.

e)

reescrever a consulta para subselects.

9.

Ao projetar uma consulta SQL para retornar dados de uma tabela com milhões de registros, é recomendado que o desenvolvedor utilize índices adequados. Uma prática que contribui para a otimização do desempenho dessa consulta é:

a)

Criar índices para todas as colunas da tabela.

b)

Utilizar somente índices compostos com três ou mais colunas.

c)

Indexar somente as colunas utilizadas em filtros, junções e ordenações frequentes.

d)

Criar índices em todas as colunas numéricas da tabela.

e)

Evitar o uso de índices em tabelas de grande porte.

10.

Em relação à otimização de consultas SQL, assinale a alternativa correta:

a)

O uso de subconsultas sempre é mais eficiente do que junções.

b)

Evitar a recuperação de colunas desnecessárias melhora o desempenho da consulta.

c)

A utilização da cláusula SELECT * é recomendada para tornar a consulta mais rápida.

d)

O uso de funções sobre colunas indexadas acelera o acesso aos dados.

e)

O otimizador de consultas ignora a existência de índices ao gerar o plano de execução.

11.

Em um banco de dados relacional, a criação de índices influencia diretamente o desempenho das consultas. No entanto, seu uso deve ser criterioso porque:

a)

Índices aumentam a velocidade de consultas, mas podem aumentar o tempo de inserções, atualizações e exclusões.

b)

Índices aceleram todas as operações no banco de dados, sem exceções.

c)

Índices aumentam o uso de CPU, mas reduzem o uso de memória.

d)

Índices são sempre criados automaticamente pelo SGBD para todas as colunas primárias e estrangeiras.

e)

Índices eliminam a necessidade de otimizar consultas de outra forma.

12.

Ao analisar o plano de execução de uma consulta no SGBD, o desenvolvedor observa que está ocorrendo um "Full Table Scan". Para reduzir o custo dessa operação, uma ação recomendada é:

a)

Substituir a consulta por uma instrução DELETE.

b)

Adicionar um índice apropriado na(s) coluna(s) utilizada(s) no filtro.

c)

Utilizar SELECT * para garantir que todos os dados sejam carregados.

d)

Criar mais tabelas para fragmentar a consulta.

e)

Evitar o uso de índices em tabelas grandes.

13.

Durante o processo de otimização de uma consulta SQL, o DBA recomenda o uso de "hints" (dicas) para orientar o otimizador de consultas. Essa técnica:

a)

Substitui a criação de índices e é a forma mais eficiente de otimizar qualquer consulta.

b)

Permite que o desenvolvedor force ou sugira o uso de determinados métodos de acesso, ou junções.

c)

Elimina a necessidade de analisar o plano de execução.

d)

É obrigatória para consultas com mais de três tabelas.

e)

Deve ser utilizada em todas as consultas para garantir a consistência.

14.

Ao otimizar uma consulta que utiliza a cláusula JOIN, uma recomendação comum para melhorar o desempenho é:

a)

Substituir todos os JOINs por subconsultas correlacionadas.

b)

Garantir que as colunas usadas para junção estejam indexadas.

c)

Sempre usar JOIN NATURAL para aproveitar índices automáticos.

d)

Ordenar as tabelas no FROM de acordo com seu tamanho.

e)

Evitar o uso de índices em colunas utilizadas para junção.

15.

Em relação à cláusula WHERE, qual das alternativas a seguir apresenta uma prática que favorece a otimização da consulta?

a)

Usar funções nas colunas indexadas para acelerar a filtragem.

b)

Comparar sempre colunas de tipos diferentes para reduzir o tempo de busca.

c)

Garantir que as comparações sejam feitas sem conversões de tipo implícitas.

d)

Utilizar expressões matemáticas complexas no filtro para reduzir registros.

e)

Evitar o uso de índices nas colunas filtradas.

16.

Para reduzir o tempo de resposta de uma consulta que envolve agregações (SUM, AVG, COUNT), uma prática recomendada é:

a)

Criar índices sobre colunas agregadas frequentemente.

b)

Sempre usar a função DISTINCT antes de agregar valores.

c)

Substituir funções de agregação por subconsultas simples.

d)

Evitar o uso de índices em colunas numéricas.

e)

Utilizar a cláusula GROUP BY em todas as consultas, independentemente da necessidade.

17.

O uso de estatísticas atualizadas no SGBD é fundamental para a otimização de consultas porque:

a)

Permite que o otimizador escolha planos de execução mais eficientes.

b)

Evita a criação de índices desnecessários.

c)

Substitui a necessidade de escrever consultas bem estruturadas.

d)

Garante que todos os índices sejam reconstruídos automaticamente.

e)

Elimina o uso de junções.

18.

Qual dos seguintes itens é minimizado pelo otimizador de consultas?

a)

Tempo de resposta (CPU + E/S)

b)

Uso de recursos (memória, bloqueios)

c)

Número de usuários

d)

Número de tabelas

19.

Preencha o espaço em branco: O otimizador considera ________ (como tamanhos de tabelas e índices) e ________ (como varredura completa vs. varredura por índice) ao processar consultas.

a)

estatísticas do banco de dados, custos relativos das operações

b)

preferências do usuário, formatação da consulta

c)

nomes dos bancos de dados, privilégios do usuário

d)

nomes das colunas, tipos de dados

20.

Quais comandos SQL são exemplos de otimização baseada em custo no Oracle?

a)

ANALYZE TABLE clientes

b)

COMPUTE STATISTICS

c)

SELECT * FROM table

d)

DROP TABLE

21.

Liste as etapas do processamento de consultas segundo Elmasri & Navathe, na ordem correta.

a)

1. Tradução 2. Otimização da Consulta 3. Definição do Plano de Execução 4. Geração de Código 5. Processamento em Tempo de Execução

b)

1. Otimização da Consulta 2. Tradução 3. Definição do Plano de Execução 4. Geração de Código 5. Processamento em Tempo de Execução

c)

1. Definição do Plano de Execução 2. Tradução 3. Otimização da Consulta 4. Geração de Código 5. Processamento em Tempo de Execução

d)

1. Tradução 2. Definição do Plano de Execução 3. Otimização da Consulta 4. Geração de Código 5. Processamento em Tempo de Execução

22.

O que a Análise Sintática verifica em uma consulta SQL?

a)

Existência da tabela

b)

Sintaxe da consulta

c)

Plano de execução

d)

Permissões

23.

Preencha o espaço em branco: A seguinte instrução SQL possui um erro de sintaxe: SELECT * FROM clientes; -- Falta "T" em "SELECT". O que está faltando na instrução?

a)

Está faltando a letra "T" em "SELECT".

b)

Está faltando o ponto e vírgula no final.

c)

O nome da tabela está escrito incorretamente.

d)

Está faltando a palavra-chave "FROM".

24.

O que a Análise Semântica valida em uma consulta SQL?

a)

A) Sintaxe

b)

B) Tabelas, colunas e permissões

c)

C) Execução

d)

D) Índices

25.

Preencha a lacuna: A seguinte instrução SQL possui um erro semântico: SELECT * FROM clientes_inexistentes; -- Erro semântico. Qual é o erro?

a)

A tabela 'clientes_inexistentes' não existe.

b)

A coluna 'clientes_inexistentes' está escrita incorretamente.

c)

A instrução SELECT está sem uma cláusula WHERE.

d)

A instrução SQL está sem ponto e vírgula.

26.

Qual é o objetivo de gerar planos alternativos (Geração de Planos Alternativos) durante a otimização de consultas SQL?

a)

Para validar permissões

b)

Para criar diferentes maneiras de executar a consulta

c)

Para verificar a sintaxe

d)

Para executar o plano escolhido

27.

O que a Estimativa de Custo calcula durante a otimização de consultas SQL?

a)

Ela calcula o custo para cada plano (CPU, I/O, memória).

b)

Ela determina o número de tabelas no banco de dados.

c)

Ela mede a velocidade da conexão de rede.

d)

Ela calcula o número total de usuários acessando o banco de dados.

28.

Qual é a etapa final no processamento de uma consulta SQL?

a)

Análise Sintática

b)

Análise Semântica

c)

Otimização

d)

Execução