SóProvas


ID
781585
Banca
CESPE / CEBRASPE
Órgão
TJ-AL
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de otimização de consultas SQL em banco de dados e mineração de dados, assinale a opção correta.

Alternativas
Comentários
  • RBO (Rule Based Optimizer) Esta forma de otimização considera as regras de negócio para escolher a forma de recuperar as informações do banco de dados. A partir da versão 10g, a Oracle deixou de dar suporte ao otimizador, deixando suas funcionalidades disponíveis apenas para manter a compatibilidade com aplicações antigas. As novas aplicações desenvolvidas devem utilizar o CBO. Atualmente não são realizadas evoluções neste otimizador, mas apenas as correções de erros que eventualmente são encontrados.
    Para melhorar o desempenho de uma consulta, o RBO verifica apenas uma maneira de otimização. Ao encontrar a primeira forma aplicável, ele abandona o processo sem verificar se outros mecanismos podem ser aplicados.
    Esta série de artigos não detalhará este otimizador, uma vez que não é recomendada a construção de novos sistemas que utilizem este otimizador para melhorar o desempenho.
    CBO (Cost-Based Optimizer) Executa o comando de forma que consuma o mínimo de recursos de processamento. Para isto, o servidor de banco de dados busca maneiras alternativas para escrever o mesmo comando de forma que sua execução seja um processo mais simples. Para tentar verificar a melhor forma de escrever um comando, o otimizador utiliza as estatísticas e histogramas existentes para os objetos e operadores utilizados no comando. Caso as estatísticas ou histogramas não estejam disponíveis, o otimizador recorre a parâmetros previamente definidos para tentar chegar a uma solução melhor do que a apresentada.
    Enquanto o RBO pára a verificação logo após encontrar a primeira otimização possível, o CBO realiza todas as otimizações possíveis aplicáveis à consulta. O trabalho deste otimizador é maior do que o realizado pelo RBO, mas o resultado final é melhor do que o alcançado pelo otimizador baseado em regras de negócio, uma vez que os recursos gastos durante a execução da consulta são menores.
    Este otimizador também permite que o desenvolvedor dê sugestões (hints) a respeito de qual é a melhor forma de resolver um comando. Esta dica pode ser, por exemplo, a indicação de qual a melhor maneira de acessar os dados em uma tabela, ou a forma mais vantajosa de efetuar a junção entre duas tabelas.
    Disponível desde o Oracle 7, este é o principal otimizador do Oracle desde então, e a partir do Oracle 10g, tornou-se o único otimizador ainda em desenvolvimento. Por este motivo, este otimizador será descrito em detalhe nos próximos artigos.
  • Alguém de java pode explicar a letra "d"?
  • Através do Hibernate Statistics poderemos dizer quantas vezes cada entidade, coleção (relacionamento) e query está sendo carregada/executada, quantas vezes o cache foi usado, tempo médio de cada query, etc. Em mão desses dados, temos mais pistas de onde colocar cache, configurar batchsize e fazer joins com fetch eager. Fonte: Caelum (http://blog.caelum.com.br/cacando-seus-gargalos-com-o-hibernate-statistics/)
  • " Ao se habilitar hibernate.generate_statistics, o Hibernate exibe as métricas de otimização via JMX.""


    Ele não usa JMX, são Stats próprias como query mais demorada, quantas vezes ele foi no cache, etc
  • Raphael, veja o comentário do Gustavo, ele explica que o CBO gera diversas formas possíveis de realizar o comando e não apenas uma única maneira. Dessas, o otimizar escolhe a que for mais performática.


  • LETRA "a"

  • Fui por eliminação. Confesso que não dominava o conteúdo dessa questão.