PL / SQL Advisor: uma ferramenta baseada em análise estática para sugerir melhorias para procedimentos armazenados

  • Dimas Nascimento Universidade Federal de Campina Grande
  • Carlos Eduardo Pires Universidade Federal de Campina Grande
  • Tiago Massoni Universidade Federal de Campina Grande

Resumo


Procedimentos armazenados são comumente usados para fornecer acesso e manipulação de dados de banco de dados para sistemas de informação e outras aplicações. Se os procedimentos apresentarem lógica de programação ineficiente ou manipulação de dados, atrasos excessivos serão fornecidos aos aplicativos clientes. Tais atrasos podem causar, entre outros problemas, perdas financeiras expressivas para as empresas. Além disso, se os procedimentos forem desenvolvidos usando práticas de programação incorretas, eles podem se tornar complexos para manter e evoluir. Em geral, as tentativas de minimizar esses problemas usando a análise manual do código-fonte são trabalhosas e demoradas. Neste trabalho, apresentamos o PL / SQL Advisor, uma ferramenta baseada em análise estática, que detecta automaticamente melhorias potenciais em procedimentos armazenados em banco de dados escritos em PL / SQL. Os resultados de um estudo de caso, usando projetos reais de código aberto, mostram que nossa ferramenta é capaz de sugerir uma quantidade razoável de melhorias de código com baixo custo.

Referências

Allen, F. E. (1970). Control flow analysis. SIGPLAN Not., 5(7):1–19.

Berkovic, I., Ivankovic, Z., Markoski, B., Radosav, D., and M., I. (2010). Optimization of bulk operation performances within oracle database. In 8th International Symposium on Intelligent Systems and Informatics (SISY), 2010, pages 163 –167.

Erlikh, L. (2000). Leveraging legacy system dollars for e-business. IT Professional, 2:17–23.

Feuerstein, S. (2007). Oracle pl/sql best practices, 2nd edition. O’Reilly, second edition. Harrison, G. (2000). Oracle SQL High-Performance Tuning, Second Edition. Prentice Hall Professional Technical Reference, 2nd edition.

Lengauer, T. and Tarjan, R. E. (1979). A fast algorithm for finding dominators in a flowgraph. ACM Trans. Program. Lang. Syst., 1(1):121–141.

Nascimento, D. C. (2013). Uma Abordagem para Análise Estática Automática de Procedimentos Armazenados em Bancos de Dados. Master’s thesis, Universidade Federal de Campina Grande, Campina Grande, Brasil.

Parr, T. J. and Quong, R.W. (1995). Antlr: A predicated-ll(k) parser generator. Software: Practice and Experience, 25(7):789–810.

Sheila Moore, E. B. (2009). Oracle Database PL/SQL Language Reference, 11g Release 2 (11.2). Oracle.

Sommerville, I. (2010). Software Engineering. Addison-Wesley, Harlow, England, 9. edition.

SonarSource (2008). Sonar for pl/sql: http://www.sonarsource.com/products/plugins/.

Ubisoft (2007). Sql enlight for t-sql: http://www.ubitsoft.com/index.php.

Young, M. and Pezze, M. (2005). Software Testing and Analysis: Process, Principles and Techniques. John Wiley & Sons.
Publicado
22/05/2013
NASCIMENTO, Dimas; PIRES, Carlos Eduardo; MASSONI, Tiago. PL / SQL Advisor: uma ferramenta baseada em análise estática para sugerir melhorias para procedimentos armazenados. In: SIMPÓSIO BRASILEIRO DE SISTEMAS DE INFORMAÇÃO (SBSI), 9. , 2013, João Pessoa. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2013 . p. 343-354. DOI: https://doi.org/10.5753/sbsi.2013.5702.