Use este identificador para citar ou linkar para este item: http://repositorio.ufc.br/handle/riufc/17251
Tipo: Dissertação
Título: Abordagens para a sintonia de comandos SQL
Autor(es): Araújo, Arlino Henrique Magalhães de
Orientador: Monteiro Filho, José Maria da Silva
Palavras-chave: Ciência da computação;SQL (Linguagem de programação de computador);Banco de dados - Gerência;Linguagens de consulta (Computação)
Data do documento: 2012
Citação: ARAÚJO, Arlino Henrique Magalhães de. Abordagens para a sintonia de comandos SQL. 2012. 141 f. : Dissertação (mestrado) - Universidade Federal do Ceará, Centro de Ciências, Departamento de Computação, Fortaleza-CE, 2012.
Resumo: Sistemas Gerenciadores de Bancos de Dados (SGBDs) permitem especificar comandos, por meio de linguagens declarativas de alto nível, como SQL Structured Query Language), por exemplo, com a finalidade de executar diferentes operações sobre os dados armazenados (consultas, atualizações, inserções e remoções). O otimizador de consultas é o módulo do SGBD responsável por escolher um plano de execução eficiente para cada comando SQL a ser executado. Para este propósito, os otimizadores procuram, em um grande espaço de busca, o plano de execução que proporcione o menor tempo de resposta. Dois comandos SQL são considerados equivalentes se retornarem os mesmos resultados. Uma vez que a sintaxe de um comando SQL influencia a escolha do plano de execução, o otimizador pode produzir planos de execução distintos para comandos SQL equivalentes. Consequentemente, comandos SQL equivalentes podem apresentar tempos de resposta diferentes. Este fato decorre das operações utilizadas em cada comando SQL (ordenações, agregações, remoção da valores duplicados, utilização de tabelas temporárias, subconsultas, dentre outras). Neste cenário, mesmo usando métodos de acesso e estratégias de avaliaçãao suportadas pelo SGBD, às vezes, os otimizadores não conseguem produzir planos ótimos. Nestes casos, deve ser realizado o ajuste (ou sintonia) do comando SQL. Para isso, em geral, duas estratégias são frequentemente utilizadas: (a) reescrever o comando SQL; e (b) aplicar Query Hinting. A técnica de reescrita consiste em escrever um novo comando SQL, equivalente ao comando SQL original, mas que apresente um tempo de resposta menor. Entretanto, o processo de reescrita de comandos SQL écomplexo e requer bastante conhecimento em diferentes áreas, tais como: (i) otimização de consultas, execução de operadores de planos de consultas, configuração de parâmetros e outros aspectos internos dos bancos de dados; (ii) identificação de índices necessários e outras e’struturas de acesso; (iii) manutenção de estatísticas sobre os dados; e (iv) características dos sistemas de armazenamento de dados. Este trabalho propõe duas abordagens distintas para suportar a reescrita de comandos SQL em bancos de dados relacionais: uma abordagem assistida e outra automática. As duas abordagens propostas utilizam um conjunto de heurísticas para realizar a reescrita dos comandos SQL. As heurísticas são constituídas de regras que visam identificar oportunidades de sintonia nos comandos SQL. Com o objetivo de avaliar a eficiência das abordagens propostas uma avaliação experimental foi realizada. Os experimentos foram conduzidos em trs diferentes cenários: i) com o benchmark TPC-H, ii) com a base de dados do TPC-H e uma carga de trabalho sintética e iii) com a base de dados do sistema SIG e uma carga de trabalho sintética. Para cada cenário, três SGBDs foram avaliados: PostgreSQL, Oracle e SQL Server. Os resultados dos testes realizados mostram que tanto a abordagem assistida quanto a automática proporcionaram ganhos de desempenho, reduzindo o tempo de resposta das cargas de trabalho avaliadas.
URI: http://www.repositorio.ufc.br/handle/riufc/17251
Aparece nas coleções:DCOMP - Dissertações defendidas na UFC

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
2012_dis_ahmaraújo.pdf3,76 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.