ID 781585 Banca CESPE / CEBRASPE Órgão TJ-AL Ano 2012 Provas CESPE - 2012 - TJ-AL - Analista Judiciário - Análise de Sistemas Disciplina Banco de Dados Assuntos Data Mining SQL Acerca de otimização de consultas SQL em banco de dados e mineração de dados, assinale a opção correta. Alternativas Otimizadores com base em regras (RBO) abandonam o processo de otimização uma vez que tenham encontrado uma primeira forma aplicável das regras, sem verificar se outros mecanismos podem ser aplicados. Otimizadores com base em custos (CBO) geram uma série de planos de execução a partir de determinada consulta, com o objetivo de conseguir a forma mais simples de processá-la e, como resultado, encontra uma única maneira de otimização. As métricas utilizadas nos otimizadores de consultas de banco de dados incluem necessariamente seletividade, cardinalidade e custo. Ao se habilitar hibernate.generate_statistics, o Hibernate exibe as métricas de otimização via JMX. A mineração de dados provê métodos automáticos para descobrir padrões em dados, limitando a análise na intuição humana. Responder 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.