dc.description.abstract |
A determinação de problemas de performance de queries de banco de dados é normalmente
feita analisando os planos de execução de queries, ou em inglês, query execution plan
(QEP), além de outras propriedades de performance. Algumas ferramentas de diagnose
de performance no mercado tem a capacidade de analisar queries problemáticas, porém
elas estão limitadas a comparar as queries com um número limitado de padrões prédefinidos.
Ainda mais, ferramentas como IBM(R) Optim Query Tuner(R) e IBM Optim
Workload Tuner(R)¹ já fazem recomendações de aperfeiçoamento de queries para problemas já conhecidos. Mesmo sendo efetivas, tais ferramentas não proporcionam a habilidade de
criar problemas padrões customizáveis devido ao fato delas não entenderem completamente
a complexa estrutura dos QEPs. Conforme os dados guardados para análise aumentam, para
poder analisá-los, a complexidade da query também aumenta. Fazer a análise manual de
QEPs tão complexas pode ser uma tarefa demorada e que requer um grande conhecimento
dos especialistas no assunto.
O presente trabalho foi desenvolvido em parceria com a IBM Centre for Advanced
Studies Toronto. IBM é uma multinacional americana, tendo como sua principal atuação o mercado de hardware, middleware e software. A ferramenta proposta está relacionada
com o sistema de banco de dados DB2 da IBM. O DB2 é um sistema de banco de dados relacionais utilizado principalmente por empresas. Devido ao grande volume de dados, o DB2 provê funcionalidades como o aperfeiçoamento de queries através da reescrita da
mesma. Ao rodar uma query no DB2, o sistema produz um plano de acesso que especifica
como os dados são obtidos das tabelas. Para a escolha do plano de acesso, o otimizador produz vários planos de acesso alternativos e seleciona aquele que tem o menor custo estimado de plano de execução.
Quando o otimizador falha, devido à experiência e tempo necessário, os usuários procuram
as empresas para sanar o problema. Na IBM, os problemas reportados por clientes são
analisados por profissionais com experiência em linguagem SQL e análise de otimizador de QEPs. Para analisar os problemas de otimização, esses profissionais utilizam de uma
ferramenta do DB2 que produz um arquivo QEP. Esses arquivos são escritos em formato
de texto legível para humanos, explicando o plano de acesso. Tais arquivos podem conter milhares de linhas e a análise manual do mesmo pode consumir muito tempo.
Visando sanar tais problemas, foi desenvolvida neste trabalho uma ferramenta chamada
OptImatch, que tem a funcionalidade de procurar por diferentes problemas padrões
dentro de um QEP e prover recomendações criadas por especialistas e salvas na base de conhecimento, abreviada por KB (knowledge base). Um grande problema das ferramentas
existentes no mercado é a falta de uma interface que provê ao usuário uma maneira de criar seu problema padrão, pois as mesmas não conseguem impor uma estrutura para os QEPs. OptImatch, através de um sistema web, provê uma interface fácil e intuitiva
para usuários criarem problemas padrões customizáveis e pesquisarem recomendações
automaticamente dentro de seus QEPs.
A solução proposta é dada pela transformação do QEP para um grafo RDF e pela pesquisa
dos problemas padrões utilizando o SPARQL como linguagem de query estruturada. Ao
fazer upload dos QEPs, a ferramenta analisa os arquivos procurando, através de expressões
regulares, as propriedades e conexões, salvando as mesmas em um arquivo RDF. Depois,
através da interface do sistema, o usuário monta seu problema padrão customizado, onde
o mesmo é enviado ao servidor e automaticamente transformado em uma query através da
linguagem SPARQL. Tal query posteriormente será utilizada para procurar o problema
customizado dentro dos arquivos RDF. Juntamente com essa pesquisa, o OptImatch
também procura pelos problemas padrões pré-definidos e guardados dentro do KB. Para
a criação das recomendações uma sintaxe própria foi criada. Através dessa sintaxe o
usuário pode utilizar tags para indicar uma porção da query, apontando para propriedades
específicas da mesma. Através dos manipuladores de tags, a ferramenta proposta substitui
as tags pelos resultados obtidos, criando assim uma recomendação mais específica para
cada usuário.
Mesmo que a ferramenta descrita nesse trabalho seja focada em determinação de problemas
de performance de queries, a mesma pode ser aplicada para qualquer tipo de software de
determinação de problemas genéricos. OptImatch necessita somente que tais softwares
produzam um arquivo de diagnóstico estruturado que necessita analise futura.
Por fim, cinco experimentos são apresentados neste trabalho. O principal foco desses experimentos
é analisar a efetividade da pesquisa da ferramenta em 1000 QEPs de usuários reais
da IBM, avaliando a performance e escalabilidade da ferramenta em termos de quantidade
de QEP, número de low level plan operators (LOLEPOPs) e número de recomendações.
Também foi feito uma analise do novo método de pesquisa da ferramenta, comparando a
mesma com o método anterior. Por último, foi realizado um estudo comparativo entre a
velocidade e precisão da ferramenta proposta e os métodos de pesquisa hoje utilizados na
IBM, mostrando os benefícios que o OptImatch poderá trazer a empresa. ¹IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might
be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web
at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml |
pt_BR |
dc.description.abstract |
Query performance problem determination in databases is often done by analyzing query execution plans (QEPs) in addition to other properties. The majority of performance
diagnostic tools help identify problematic queries. Unfortunately, most query tuning tools
provide recommendations to only few known problems. Furthermore, manual analysis of QEPs requires deep knowledge in both SQL and analyzing optimizers as the complexity of the query workloads in companies increase. A tool called OptImatch was created to provide a simple way to search different problem patterns created by users in QEPs.
Moreover, OptImatch matches and provides recommendations, created by experts and users, stored in a knowledge base. The proposed tool transforms the QEP into a RDF graph and automatically generate a SPARQL query from a user-based problem pattern described in the GUI by the use of handlers. The SPARQL query is then run against the
RDF graph and any matching portion is returned to the user. OptImatch also searches for predefined problem patterns by scanning the knowledge base against the RDF graph, returning a recommendation for any match. In the running time, the system adapts the
recommendation to the user through the handler tagging interface. An analysis of the
performance and scalability of the system was performed using a real-world query workload.
Also, a comparative user study was performed to evaluate the advantages of this tool in contrast to manual search as used inside IBM. |
pt_BR |