SóProvas


ID
1902517
Banca
FGV
Órgão
IBGE
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

João foi incumbido de rever um lote de consultas SQL. Como ainda é iniciante nesse assunto, João solicitou ajuda ao colega que lhe pareceu ser o mais experiente, e recebeu as seguintes recomendações gerais:

I. use a cláusula DISTINCT somente quando estritamente necessária;

II. dê preferência às junções externas (LEFT, RIGHT, OUTER) em relação às internas (INNER);

III. use subconsultas escalares no comando SELECT, tais como “SELECT x,y,(SELECT ...) z ..." sempre que possível.

Sobre essas recomendações, é correto afirmar que:

Alternativas
Comentários
  • Prezados,

    O item I é correto, a cláusula DISTINCT traz apenas as linhas onde não ocorre repetição, então se no resultado da consulta a repetição se fizer necessária, não devemos usar o DISTINCT, devemos usa-lo apenas onde for estritamente necessário. Além disso o DISTINCT afeta a performance da consulta.
    O item II é errado, devemos dar prioridade aos INNER join, para depois usarmos as junções externas. Além disso, as junções externas são menos performáticas.
    O item III é errado, subconsultas devem ser evitadas, elas degradam muito a performance. 

    Portanto a alternativa correta é a letra B.

  • Esse tipos de perguntas são totalmente relativas induz o candidato ao ERRO, pois eles que definem a situação, totalmente incoerente uma pergunta dessa, eu uso DISTINCT quando eu preciso fazer uma busca de linhas não repetidas, ai o cara me diz que uso quando estritamente necessário??????????? não existe isso. Pegunte tendenciosa.

  • Item: Use a cláusula DISTINCT somente quando estritamente necessária.


    Explicação: Não é recomendável utilizar distinct, só quando realmente for necessário.

  • A opção I é adequada por que qualquer comando só deve ser usado quando estritamente necessário. Em outras palavras, usar qualquer comando quando não necessário seria um erro.

    A opção II não faz sentido, pois cada uma tem seu uso específico, então não é questão de predileção, mas de necessidade (por exemplo: quando for estritamente necessário use um right join)

    Utilizar subconsultas sempre que possível significa utilizá-las até mesmo quando não for necessário, pois é possível inventar subconsultas para complicar consultas simples. Logo a opção III também não é adequada, pois devemos usar subconsultas e quais quer outras funcionalidades apenas quando necessário, ou melhor estritamente necessário.