analise de desempenho de bancos de dados´ - unipac.br · resumo. existe uma preocupac¸ao com qual...

20
An´ alise de desempenho de Bancos de Dados Erick Rodrigues Ferreira 1 , Sergio M. Trad J´ unior 1 1 Departamento de Ciˆ encia da Computac ¸˜ ao – Universidade Presidente Antˆ onio Carlos (UNIPAC) Rua Palma Bageto Viol S/N – Barbacena – MG – Brasil [email protected], [email protected] Abstract. There is concern about which system database is better than the other in face of practical situations. This causes the interest in developing analyzes between different systems on the market. In the scope of performance of data- base systems, this paper presents an analysis between databases Firebird 2.5, PostgreSQL 9.2.1, MySQL 5.5, SQL Server 2008, to assist users of databases about the choice of the most showing the way they behare in a series of tests. Resumo. Existe uma preocupac ¸˜ ao com qual sistema de banco de dados ´ e me- lhor do que o outro diante de situac ¸˜ oes pr´ aticas. Isto provoca o interesse em desenvolver trabalhos de an´ alise entre os diferentes sistemas existentes no mer- cado. No escopo de desempenho de sistemas de bancos de dados, este trabalho apresenta uma an´ alise entre os bancos Firebird 2.5, PostgreSQL 9.2.1, MySQL 5.5, SQL Server 2008, para auxiliar os usu´ arios de bancos de dados quanto ` a escolha do mais adequado, apresentando como os mesmos se comportam pe- rante uma bateria de testes. 1. Introduc ¸˜ ao A demanda por Sistemas de Gerenciamento de Bancos de Dados cresce continuamente a cada dia, e juntamente com essa demanda, cresce tamb´ em o volume de dados que estes sistemas devem gerenciar assim como a complexidade de suas aplicac ¸˜ oes. Se- gundo [CARNEIRO 2011], efetuar operac ¸˜ oes sobre estas grandes colec ¸˜ oes de dados ´ e uma quest˜ ao pontual, pois a avaliac ¸˜ ao de desempenho de um SGBD (Sistema Gerencia- dor de Banco de Dados) ´ e medida, usando como base sua eficiˆ encia diante de consultas e alterac ¸˜ oes. Atualmente, como cita [GESTAO, 2008], encontram-se no mercado diversos sis- temas gerenciadores de banco de dados, os quais, na maioria dos casos, s˜ ao instalados, configurados e utilizados com todos os seus parˆ ametros em valores padr˜ oes, sem levar em considerac ¸˜ ao o tipo de aplicac ¸˜ ao para o qual ser˜ ao utilizados, o hardware, e at´ e mesmo o sistema operacional. Com isso, o melhor desempenho do sistema de banco de dados, pode n˜ ao ser obtido, visto que diversos parˆ ametros podem ser considerados e ajustados. Ainda segundo [GEST ˜ AO, 2008], o primeiro caminho para conseguir um desem- penho adequado de um sistema de banco de dados e tomar decis˜ oes corentes durante seu projeto, seguindo assim um m´ etodo de trabalho que ir´ a lhe fornecer um melhor resultado. De acordo com a definic ¸˜ ao do dicion´ ario Websters II, um benchmark ´ e um padr˜ ao para medida ou avaliac ¸˜ ao. Em ambientes computacionais, um benchmark ´ e tipicamente um software que realiza um conjunto restrito e pr´ e-definido de operac ¸˜ oes, uma carga de

Upload: truongkhuong

Post on 18-Aug-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Analise de desempenho de Bancos de Dados

Erick Rodrigues Ferreira1, Sergio M. Trad Junior1

1Departamento de Ciencia da Computacao – Universidade Presidente Antonio Carlos (UNIPAC)Rua Palma Bageto Viol S/N – Barbacena – MG – Brasil

[email protected], [email protected]

Abstract. There is concern about which system database is better than the otherin face of practical situations. This causes the interest in developing analyzesbetween different systems on the market. In the scope of performance of data-base systems, this paper presents an analysis between databases Firebird 2.5,PostgreSQL 9.2.1, MySQL 5.5, SQL Server 2008, to assist users of databasesabout the choice of the most showing the way they behare in a series of tests.

Resumo. Existe uma preocupacao com qual sistema de banco de dados e me-lhor do que o outro diante de situacoes praticas. Isto provoca o interesse emdesenvolver trabalhos de analise entre os diferentes sistemas existentes no mer-cado. No escopo de desempenho de sistemas de bancos de dados, este trabalhoapresenta uma analise entre os bancos Firebird 2.5, PostgreSQL 9.2.1, MySQL5.5, SQL Server 2008, para auxiliar os usuarios de bancos de dados quanto aescolha do mais adequado, apresentando como os mesmos se comportam pe-rante uma bateria de testes.

1. Introducao

A demanda por Sistemas de Gerenciamento de Bancos de Dados cresce continuamentea cada dia, e juntamente com essa demanda, cresce tambem o volume de dados queestes sistemas devem gerenciar assim como a complexidade de suas aplicacoes. Se-gundo [CARNEIRO 2011], efetuar operacoes sobre estas grandes colecoes de dados euma questao pontual, pois a avaliacao de desempenho de um SGBD (Sistema Gerencia-dor de Banco de Dados) e medida, usando como base sua eficiencia diante de consultas ealteracoes.

Atualmente, como cita [GESTAO, 2008], encontram-se no mercado diversos sis-temas gerenciadores de banco de dados, os quais, na maioria dos casos, sao instalados,configurados e utilizados com todos os seus parametros em valores padroes, sem levar emconsideracao o tipo de aplicacao para o qual serao utilizados, o hardware, e ate mesmoo sistema operacional. Com isso, o melhor desempenho do sistema de banco de dados,pode nao ser obtido, visto que diversos parametros podem ser considerados e ajustados.

Ainda segundo [GESTAO, 2008], o primeiro caminho para conseguir um desem-penho adequado de um sistema de banco de dados e tomar decisoes corentes durante seuprojeto, seguindo assim um metodo de trabalho que ira lhe fornecer um melhor resultado.

De acordo com a definicao do dicionario Websters II, um benchmark e um padraopara medida ou avaliacao. Em ambientes computacionais, um benchmark e tipicamenteum software que realiza um conjunto restrito e pre-definido de operacoes, uma carga de

trabalho e retorna um resultado em algum formato (metrica), que descreve o comporta-mento do sistema. Segundo [Gray 1993], executar o benchmark, torna possıvel reali-zar comparacoes de dois ou mais softwares em um mesmo computador. A escolha deum Sistema Gerenciador de Banco de Dados (SGBD), dentre a grande diversidade dis-ponıvel no mercado e uma tarefa delicada, devido a importancia e responsabilidade queessa ferramenta representa por gerenciar uma das maiores riquezas de uma organizacao,que sao as informacoes. Nesta tarefa, varios fatores devem ser considerados, tais comoconfiabilidade, integridade e seguranca dos dados, suporte a linguagem de programacao,interoperabilidade, conjunto de ferramentas do produto, dentro outras. Contudo, com ocrescimento constante do volume de dados que os SGBD‘s gerenciam, e que muitas vezesestao armazenados remotamente, um fator que vem se destacando como ponto decisivopara escolha de um sistema e o desempenho.

1.1. ObjetivosO objetivo geral deste trabalho e pesquisar alguns dos SGBD‘s mais utilizados atual-mente, e medir o desempenho mesclando sistema abertos e proprietarios. Ilustrar umacomparacao entre eles, para que, atraves dos dados obtidos, contribua-se para o processode determinacao do sistema gerenciador de banco de dados a ser utilizado.

Para alcancar esse objetivo, sera utilizado como ferramenta de comparacao osBenchmark‘s TPC-C (Transaction Process Council - Consorcio de Transacoes por Pro-cesso em Consultas) e AS3AP. de Banco de Dados (SGBDs). Nessas ferramentas, seraodefinidas cargas de processamento de transacoes que simula as atividades encontradas emum ambiente de aplicacoes complexas e verificada a amplitude na medicao do desempe-nho.

Especificamente este trabalho realizara uma analise de desempenho de quatro sis-temas Gerenciadores de Banco de Dados, sendo eles: Firebird 2.5, PostgreSQL 9.2.1,MySQL 5.5, SQL Server 2008. Para os testes e configuracao dos bancos serao usadas,respectivamente, as seguintes ferramentas de administracao: Ibxpert, Pgadmin II, MySQLFront e SQL Server Management Studio.

Essas ferramentas, segundo [LEITE,2007], fornecem um ambiente de desenvolvi-mento integrado para acessar, configurar, gerenciar e desenvolver todos os componentesdos SGBD‘s. Combina um amplo grupo de ferramentas graficas com editores de scriptssofisticados que fornecem aos desenvolvedores e administradores acesso ao Banco. Ometodo que sera aplicado consiste em efetuar uma comparacao entre eles, para que,atraves dos dados obtidos, contribuıa-se para o processo de determinacao do sistema debanco de dados a ser utilizado em cada tipo de aplicacao. Desta forma o artigo visa:

• Realizar insercoes de tipos e volumes diferentes e computar o tempo de respostadestas;

• Analisar o crescimento do volume de dados, verificando o aumento do espacofısico da base mediante as insercoes;

• Apresentar graficos comparativos mediante resultados obtidos;

1.2. MotivacaoSegundo [Guimaraes, 2002], nao existe um meio universal com o qual possamos ava-liar o desempenho dos diversos sistemas computacionais, e necessario definir tecnicas

e metricas para cada caso. Assim como a maioria dos sistemas de software, tambemos bancos de dados sao complexos, pois ha uma boa quantidade de variacoes pelasimplementacoes dos diferentes fornecedores. Essas variacoes podem ser de performan-ces da instancia de dados, recuperacao, disponibilidade, configuracao e especificacoesde cada tecnologia. Como resultado, ha significativas mudancas de desempenho em di-ferentes tarefas. Enquanto um sistema pode ser o mais eficiente para uma determinadatarefa, outro pode ser o mais eficiente para uma tarefa diferente [Silberschatz., Korth. eSudarshan., 2006].

Comparacao de SGBD’s usando sistemas abertos ou proprietarios, que mostramde uma forma objetiva o desempenho dos diversos sistemas de bancos de dados, podemajudar a quem esta ingressando nesta area. Desenvolvedores de aplicacoes se deparamcom dificuldades grandes quando procuram comparacoes entre sistemas gerenciadores debancos de dados, no intuido de determinarem qual deles e o mais adequado.

2. Sistemas de Bancos de DadosSegundo [Silberschatz., Korth. e Sudarshan., 2006], sistema de bancos de dados sao pro-jetados para gerir grandes volumes de informacoes. O gerenciamento de informacoes im-plica a definicao dos mecanismos para manipulacao dessas informacoes. Ainda segundoos autores, um sistema de banco de dados deve garantir a seguranca das informacoes ar-mazenadas contra eventuais problemas como o sistema, alem de impedir tentativas deacesso nao autorizadas.

Figura 1. Sistema de banco de dados.[Silberschatz., Korth. e Sudarshan., 2006]

O banco de dados e um recurso que veio facilitar a busca de informacoes, elimi-nando os arquivos de pap’eis, integrando os dados de aplicacoes e fornecendo seguranca.Com o objetivo de simplificar a criacao e manutencao de um Banco de Dados surgiu osSistemas Gerenciadores de Banco de Dados (SGBDs). Segundo [Date., 2000], os Siste-mas de Banco de Dados tem a finalidade de gerenciar as informacoes de um banco dedados, que e um repositorio para uma colecao de arquivos de dados computadorizados.Sendo assim, e uma camada que fica entre o banco de dados e os usuarios, ou outrossoftwares que interagem com o SGBD. Um SGBD fornece aos usuarios operacoes para

inserir, alterar, excluir, obter e atualizar dados em um sistema, assegurando a integridadedos dados. Sua utilizacao traz vantagens como: eficiencia no acesso aos dados, reducaodo tempo de desenvolvimento de uma aplicacao, acesso concorrente e rapido retorno,alem da integridade e seguranca dos dados. A (figura 1) apresenta os componentes de umsistema de banco de dados.

2.1. POSTGRESQLO PostgreSQL e definido como um Sistema Gerenciador de Banco de Dados objeto rela-cional, por apresentar caracterısticas de um SGBD relacional e ainda, funcionalidades deorientacao a objetos (POSTGRESQL GLOBAL DEVELOPMENT GROUP, 2005). Com21 anos de desenvolvimento e uma combinacao de esforcos de uma grande comunidade deprogramadores espalhada pelo mundo, o PostgreSQL e um sistema de codigo aberto queesta concorrendo com produtos comerciais como SQL Server e Oracle. Por se tratar de umcodigo aberto, com licenca BSD (Berkeley Software Distribution), o sistema possibilita oacesso, alteracoes e adaptacoes no codigo por seus proprios usuarios, exigindo somenteque o codigo licenciado mantenha suas informacoes de direitos autorais e licenca. OPostgreSQL pode ser adquirido atraves de download do site: http://www.postgresql.org/.

2.1.1. Caracterısticas

O PostgreSQL segue a padronizacao SQL (Structured Query Language- Linguagem Es-truturada de Consulta), uma linguagem de interface para SGBD. Possui uma ferramentatexto chamada psql, para receber os comandos SQL e uma interface grafica chamadaPGAdmin para tornar mais facil e intuitivo o uso do SGBD. O sistema possibilita tambema manipulacao dos dados armazenados atraves de camadas ODBC e JDBC ou com acessonativo na linguagem C. Dada estas-caracterısticas, e possıvel desenvolver aplicacoes com-plexas para a manipulacao dedados armazenados no PostgreSQL, usando qualquer lin-guagem de programacao, como C/C++, Delphi, Java, Perl, PHP, Python, Visual Basic, eoutras [LEITE, 2007].

2.2. MySQLMySQL e um banco de dados relacional, desenvolvido para plataformas Linux like, OS/2,Windows. Sendo um softwares de livre distribuicao para plataformas nao-Windows queo utilizam em um servidor Web. MySQL e um servidor multiusuario, multitarefa, com-patıvel com o padrao SQL (Structured Query language Linguagem de Consulta estru-turada), linguagem essa amplamente utilizada para manipulacao de dados em RDBMS(Banco de dados Relacionais), sendo considerada um ferramenta de manipulacao de basede dados de tamanho moderado. As principais caracterısticas que destacam MySQLsao: seu suporte as instrucoes SQL; sua natureza de distribuicao gratuita; facilidade deintegracao com servidor Web e linguagens de programacao de desenvolvimento de sitesdinamicos, especialmente a linguagem PHP.

2.2.1. Caracterısticas

MySQL e um banco de dados multiprocessado, significando que pode utilizar varios pro-cessadores ao mesmo tempo. Capacidade para manipular bancos com ate 50 milhoes

de registros. MySQL foi escrito em C e C++. Permite conexoes via TCP/IP. Permiteacesso via ODBC. Possui instrucoes para extracao de informacoes relativas a tabelas,bancos, ındices.Sua instalacao atraves de RPM (RedHat Package Manager - Gerenciadorde pacotes RedHat), e um processo simplificado, sendo criado toda a estrutura interna dearquivos no sistema operacional, bem como execucao de scripts de inicializacao e ajustesem arquivos de inicializacao no servidor Web e modulo PHP.

2.3. SQL ServerO SQL Server e um SGBD - sistema gerenciador de Banco de dados Relacional criadopela Microsoft em parceria com a Sybase em 1988 e inserido como produto complementardo Windows NT. Ao final da parceria, em 1994, a Microsoft continuou aperfeicoando oproduto. Com a nova versao, o Microsoft SQL Server 2008 fornece uma plataforma dedados confiavel, produtiva e inteligente que permite que voce execute suas aplicacoesde missao crıtica mais exigentes, reduza o tempo e o custo com o desenvolvimento e ogerenciamento de aplicacoes e entregue percepcao que se traduz em acoes estrategica semtoda sua organizacao. O SQL e um SGBD robusto e usado por sistemas corporativos dosmais diversos portes.

2.3.1. Caracterısticas

A plataforma proporciona seguranca, confiabilidade, facilidade de gerenciamento e esca-lonavel de data warehouse. Alem disso, essa plataforma e adequada para aplicacoes depequeno e grande porte. Confira outras facilidades do sistema:

• criacao e compartilhamento de relatorios atraves do SQL Server Reporting Servi-ces;

• possibilidade de criptografia de informacoes valiosas em um banco de dados, ar-quivos de dados ou de log, sem necessidade de modificar as aplicacoes;

• visualizacao, integracao e analise de qualquer tipo de arquivo, do relacional adocumentos, informacoes geograficas e XML;

2.4. FIREBIRDO Firebird e um sistema de manutencao de bases de dados, sustentado pelo trabalho vo-luntario de um grupo de desenvolvedores e pela Fundacao FireBird. O sistema Firebirdesta disponıvel no site http://firebird.sourceforge.net/ para download. E por ser um pro-jeto de codigo aberto, os usuarios podem contribuir implementando novos recursos ecorrigindo erros.

2.4.1. Caracterısticas

Utiliza o padrao ANSI SQL-92. Esta disponıvel para os principais sistemas operacio-nais (Windows, Linux, Solaris, MacOS), suporte a replicacao, integridade referencial en-tre tabelas, backups incrementais, transacoes compatıvel com ACID (Atomicidade, Con-sistencia, Isolamento, Durabilidade), UDF (User Defined Functions) e SubSelects. Alemdisso, o Firebird apresenta pouca ocupacao de espaco em disco (10,33 Mb) e utiliza poucamemoria em situacoes normais de uso. As opcoes mais conhecidas de ambiente graficodo Firebird sao o IBExpert, IBOConsole e Firebird Workbench.

3. BENCHMARKSUm benchmark consiste em um padrao de testes para medir ou avaliar algo, sendo utili-zado tambem para analisar o desempenho de um sistema. Pode ser implementado comouma instrucao, um programa ou uma especıficas de pedidos de interacoes com um com-ponente de software [LORENA, 2007].

Segundo [Svobodova 1976], a finalidade da avaliacao de desempenho de um Sis-tema e verificar a efetividade com que os recursos de hardware sao utilizados para aten-der aos objetivos do softwares . Esta avaliacao pode ser classificada como comparativa,quando o desempenho do sistema e avaliado mediante o desempenho de outro sistema, ouanalıtica, quando o sistema e avaliado com varios parametros de carga e de configuracaodo proprio sistema.

Conforme descrevem [PIRES., NASCIMENTO. e SALGADO, 2006],os progra-mas de benchmark efetuam um numero de operacoes pre-definidas (carga de trabalho)e apresenta um resultado em algum formato (metrica), que relata o comportamento dosistema. As metricas podem calcular a velocidade para completar a carga de trabalho ouvazao, que seriam quantas cargas de trabalho por unidade de tempo foram medidas.

Segundo Gray [1993], um benchmark deve atender os seguintes criterios:

• relevancia: As medidas verificadas deverao descrever funcionalidade e expecta-tiva de desempenho acerca do produto submetido ao benchmark. E necessarioespecificar com clareza o domınio da utilizacao da ferramenta e as operacoes aserem submetidas;

• portabilidade: Na elaboracao de um benchmark, as definicoes e os termos utili-zados devem estar em um nıvel de abstracao que permita transporta-lo para asimplementacoes de diferentes ferramentas. Portanto, nao deve haver privilegio nautilizacao de um contexto que seja particular a uma determinada abordagem. Oobjetivo desta consideracao e tornar o benchmark aplicavel a uma gama maior deferramentas a serem avaliadas;

• escalabilidade: O padrao das medicoes deve atender a pequenos ou grandes siste-mas, independente do nıvel de complexidade dos mesmos. Fatores como mono-processamento ou multiprocessamento, clock e tamanhos de memorias nao devemtornar as medidas inconsistentes, nem influenciar na aplicabilidade do benchmark;

• simplicidade: Os criterios definidos no benchmark devem ser simples e de facilcompreensao. Porem, a relevancia das metricas nao deve ser negligenciada. Me-didas muito simples podem nao refletir boas caracterısticas de julgamento de umaferramenta. No entanto, se for definido um conjunto de metricas muito comple-xas e de difıcil assimilacao pela comunidade interessada nos resultados, poderaocorrer uma perda de credibilidade do benchmark.

3.1. Casos de UsoExistem varias implementacoes de benchmarks para realizar medidas de desempenho, nosmais diversos sistemas, como servidores WEB, SGBDs, aplicacoes graficas, entre outros.Como exemplo, pode-se citar: benchmarks para banco de dados (AS3AP, DBT-2, OSDB,TPCC-UVA, TPC-C, Wiscosin, 007) e benchmarks para arquiteturas de CPUs (SPEC 95,SPEC 2000).

3.2. Benchmarks AS3AP

O benchmark AS3AP, segundo [CARLOS, S. 2011] ,possui, como caracterısticas princi-pais a amplitude na medicao do desempenho das principais funcionalidades de um bancode dados e a variacao de tipos de carga de trabalho aplicados. O benchmark e dividido emmodulos que podem ser executados separadamente ou em conjunto. Cada modulo e res-ponsavel por testar uma certa funcionalidade. Algumas organizacoes de publico, comouniversidades e laboratorios de pesquisa, criaram implementacoes de codigo aberto dobenchmark AS3AP, como o Open Source Database Benchmark[OSDB 2001], da Com-paq Computer Corporation®

O benchmark AS3AP oferece os seguintes recursos:

• fornece um unico relatorio atraves de uma metrica: efetuar uma rotina de avaliacaode igualde do banco AS3AP em menos de 12 horas;

• poder de processamento de bancos de dados;

• Fornece uma interpretacao uniforme e metrica simples de resultados de bench-mark;

• as definicoes e os termos utilizados devem estar em um nıvel de abstracao quepermita transporta-lo para as implementacoes de diferentes ferramentas. Portanto,nao deve haver privilegio na utilizacao de um contexto que seja particular a umadeterminada abordagem;

• criterios ser simples e de facil compreensao;

• nao utilizar um conjunto de metricas muito complexas e de difıcil assimilacao;

Sistemas testados com o benchmark AS3AP devem suportar tipos de dados co-muns e fornecer uma interface completa relacional com integridade basica, consistenciae mecanismos de recuperacao. O benchmark AS3AP pode testar sistemas que variam deum unico usuario do Sistema de Gerenciamento de Banco de Dados microcomputador(SGBD) para uma paralela de alto desempenho ou banco de dados distribuıdo. Porem, arelevancia das metricas nao deve ser negligenciada. Medidas muito simples podem naorefletir boas caracterısticas de julgamento de uma ferramenta. No entanto, se for definidoum pela comunidade interessada nos resultados, podera ocorrer uma perda de credibili-dade do benchmark.

3.3. Benchmarks TPC

Com o objetivo de definir benchmarks para avaliar o processamento de transacoes e bancode dados, surgiu em 1988 o TPC. Se trava de um consorcio sem fins lucrativos, que rea-liza avaliacoes em ambientes diferentes e publica relatorios de benchmarks denominados:TPC-C, TPC-H, TPC-W e TPC-App, esse ultimo e o substituto do TPC-App. O con-junto de transacoes que compoem os testes e o que diferencia os diversos relatorios TPCs[http://www.tpc.org/information/benchmarks.asp]

3.3.1. Benchmarks TPC-C

O Benchmark TPC-C e utilizado para avaliar Sistemas Gerenciadores de Banco de Dados(SGBDs). E definida uma carga de processamento de transacoes que simula as atividadesencontradas em um ambiente de aplicacoes complexas, caracterizado por:

• execucao simultanea de multiplos tipos de transacoes;

• testes em ambientes ou mono-usuarios;

• testes em ambiente online multi-usuarios;

• composta por um conjunto de transacoes de leitura e escrita;

• entrada / Saıda de disco significantes;

• a metrica de desempenho definida e uma taxa medindo o numero de transacoesefetivadas com sucesso por minuto (tpmC) ou por segundo (tmsC).

O proposito do TPC-C e prover dados relevantes de desempenho que auxiliem os usuariosa comparar de maneira objetiva dois ou mais sistema quanto a capacidade de processartransacoes, nao deve haver privilegio na utilizacao de um contexto que seja particulara uma determinada abordagem. O objetivo desta consideracao e tornar o benchmarkaplicavel a uma gama maior de ferramentas a serem avaliadas [GUIMARAES 2007].

4. Ambiente de Simulacao

As definicoes de carga e os testes terao como ambiente de execucao um notebook DellXPS com processador core I7 2,2GHz com 8GB de memoria RAM. O sistema operacionalutilizado sera o Windows 7 Ultimate SP1.

Tabela 1. SGBD’S e ferramentas de administracao.

O sistema operacional foi configurado apenas com seus controladores, sem ne-nhum outro componente que pudesse comprometer o ambiente. As ferramentas de geren-ciamento foram configuradas de forma padrao conforme (tabela 1), para que desta formanenhuma delas pudesse obter um ganho de desempenho nos testes. Todos os testes fo-ram efetuados em banco local e sem nenhum tipo de componente on-line, conforme osmodelos de orientacao dos benchmarks AS3AP e TPC-C.

4.1. Aplicacao do Benchmark AS3AP

Seguindo o modelo do benchmark AS3AP, a criacao da tabela de bancos de dados con-forme a (tabela 2) , foi efetuada de forma simples e sem criacao de ındices ou chaves.Segundo a norma, para os testes nao deve haver privilegios para nenhum SGBD que opropicie algum ganho de desempenho em relacao a qualquer outro na avaliacao. O bancodeve ser iniciado e, apos a criacao de uma base limpa, executados os scripts.

Tabela 2. Estrutura da tabela.

Ainda respeitando o criterio do AS3AP, os comandos devem ser simples e de facilcompreensao. Desta forma, os comando foram criados e salvos no formato (.sql), quepode ser acessado por todas as ferramentas gerenciadoras dos SGBD’s, e separados daseguinte forma:

• Para a criacao da tabela RICADPAC, como mostra a listagem 1, foi criado umscript de criacao de tabela.

CREATE TABLE RICADPAC (NOME VARCHAR( 4 5 ) ,NASC DATE,MAE VARCHAR( 4 5 ) ,SEXO VARCHAR( 1 ) ,ENDERECO VARCHAR( 4 0 ) ,NUMERO INTEGER ,BAIRRO VARCHAR( 3 0 ) ,CIDADE VARCHAR( 3 0 ) ,UF VARCHAR( 2 )

) ;

Listagem 1. Script de criacao da tabela.

• Conforme a listagem 2, para o comando de insercao, foi gerado um script que fazuma inclusao de dados em todos os campos da tabela RICADPAC.

INSERT VALUES INTO RICADPAC (NOME , NASC , MAE , SEXO , ENDERECO , NUMERO , BAIRRO , CIDADE , UF

) ;

Listagem 2. Script de insercao.

• Em seguida foi gerado o script de consulta, que conforme a listagem 3 percorretodos os campos da tabela RICADPAC.

SELECT * FROM RICADPAC ;

Listagem 3. Script de consulta.

• Ja na listagem 4, pode-se ver o comando de alteracao. Nesse comando todos oscampos da tabela forma alterados de uma so vez.

UPDATE RICADPAC SET NOME = ' ERICK RODRIGUES FERREIRA ' ,NASC = ' 1986−11−11 ' , MAE = ' DENISE MARIA RODRIGUES FERREIRA ' ,SEXO = 'M ' , ENDERECO = 'AVENIDA DOM PEDRO I I ' , NUMERO = ' 1660 ' ,BAIRRO = 'PASSARINHOS ' , CIDADE = 'BARBACENA ' , UF = 'MG 'WHERE = 'NOME DO REGISTRO UTILIZADO NOS TESTES ' ;

Listagem 4. Script de alteracao.

• Por ultimo foi gerado um script que apaga todos dados inseridos nos campos databela RICADPAC. Como pode ser visto na listagem 5.

DELETE FROM RICADPAC ;

Listagem 5. Script de exclusao.

O benchmark AS3AP em conjunto com o TPC-C tambem sera responsavel poravaliar o tamanho maximo da base de dados apos os testes.

4.2. Aplicacao do Benchmark TPC-C

Conforme dito anteriormente, o TPC-C complementa AS3AP , pois utiliza a estruturapadrao do banco, criada para a aplicacao dos volumes de cargas, e, desta maneira foramutilizados tres volumes de cargas distintos:

• Os volumes de entrada de dados foram separados por 1000,10.000 e 100.000 re-gistros.

• O computador era iniciado e logo em seguida a ferramenta de administracao doSGBD escolhido.

Seguindo o benchmark TPC-C, a metrica utilizada foi a que mede o desempenhodo numero de transacoes de entrada e saıda efetivadas com sucesso por segundo (tmsC).Cada volume testado tres vezes em cada SGBD, e o resultado final foi obtido por meioda media aritmetica desses comandos. Para entender melhor esse processo, pode-se des-creve-lo em etapas:

• Ao se iniciar o primeiro SGBD, aplica-se o comando de insercao do primeirovolume, de 1000 registros.

• Em seguida, ainda na mesma aplicacao aberta, efetuam-se os comandos de con-sulta, alteracao e exclusao, obtendo-se, assim, o primeiro resultado.

• O computador e reiniciado, pois, desta forma, pode-se assegurar que nao ha inter-ferencia na memoria, no processamento do computador, ou, ate mesmo, no cashde dados que poderiam ficar armazenados, proporcionado, assim, um ganho paraa proxima consulta.

• Repete-se esse mesmo teste mais duas vezes nesse SGBD, obtendo-se, assim, amedia aritimetica.

• Ao final do teste com o primeiro volume, inicia-se o segundo, utilizando-se domesmo criterio da media.

• Em seguida, foi aplicada a mesma metodologia anterior para o terceiro volume decargas.

5. Resultados dos testes comparativosOs resultados foram separados por tres etapas, levando-se em consideracao os volumesde dados aplicados:

• A primeira etapa, foi efetuada com o um volume 1000 registros.• Na segunda, foram utilizados 10.000.• Por ultimo, foram usados 100.000 registros.

A seguir podem-se ver os resultados obtidos nas tres etapas.

5.1. Resultados do primeiro testeO primeiro teste foi feito com volume de 1000 registros e conforme as tabelas (3, 4, 5,6), resultados foram descritos em segundos, lavando-se em consideracao tres casas aposa vırgula.

O primeiro teste aplicado foi o de insercao.

Tabela 3. Media Aritmetica de Insercao - 1000 registros.

O segundo foi o teste de consulta dos dados que retornava como resultado todosos registros inseridos na tabela.

Tabela 4. Media Aritmetica de Consulta - 1000 registros.

A terceira media foi a de Alteracao; era executado em cada tempo juntamente comos outros comandos do teste.

Tabela 5. Media Aritmetica de Alteracao - 1000 registros.

Por ultimo, foi realizada a media dos tempos de exclusao de cada SGBD no vo-lume de 1.000 registos.

Tabela 6. Media Aritmetica de Exclusao - 1000 registros.

Como mostra a figura 2, apos a primeira de testes com 1000 registros ja foipossıvel verificar que o PostgreSQL apresentou o menor tempo de insercao de dadosapresentando um resultado quase tres vezes menor que a media dos outros tres.

Figura 2. Resultados de tempo (segundos) - 1000 registros

Firebird foi o que apresentou o maior custo no volume de dados quanto a insercao.E possıvel ver na tabela 7 que ele obteve um aumento na base de 0,311 M Bytes.

Tabela 7. Teste com volume de carga com 1000 registros - Crescimento da basede dados

Ja o PostegreSQL, conforme ilustrado na figura 4, foi o unico SGBD que teve otamanho da base de dados alterado com o comando UPDATE.

Figura 3. Grafico de Resultados do Primeiro Teste - Crescimento da base dedados.

5.2. Resultados do segundo teste

O segundo teste foi feito com volume de 10.000 registros e, conforme as tabelas (8, 9, 10,11) mostram, os resultados foram satisfatorios.

O primeiro teste aplicado foi o de insercao de 10.000 registros.

Tabela 8. Media Aritmetica de Insercao - 10.000 registros.

O segundo foi o teste de que utilizou o comando de selecao de todos os dadoscontidos na tabela.

Tabela 9. Media Aritmetica de Consulta - 10.000 registros.

A terceira media foi a de Alteracao. Nesse comando pode ser notado uma grandeigualdade entre os bancos.

Tabela 10. Media Aritmetica de Alteracao - 10.000 registros.

Por ultimo, foi realizada a exclusao de todos os registros da tabela.

Tabela 11. Media Aritmetica de Exclusao - 10.000 registros.

Como pode-se notar na figura 5, mesmo com um volume de dados dez vezesmaior o PostreSQL continuou apresentando o menor custo na insercao dos dados, mas acontrapartida passou a ter um desempenho muito ruim na consulta dos dados.

Figura 4. Resultados de tempo (segundos) - 10.000 registros.

Ja na tabela 12, o Firebird continuou apresentando o maior aumento na base dedados, quando utilizado o comando de insercao.

Tabela 12. Teste com volume de carga com 10000 registros - Medida de tempo.

Na soma das bases, apos os comandos de alteracao e de insercao, nota-se no figura6 que o PostgreSQL teve o maior aumento na base de dados.

Figura 5. Grafico com resultados do segundo teste - Crescimento da base dedados.

5.3. Resultados do terceiro testeO terceiro teste foi feito com volume de 100.000 registros e, conforme as tabelas ( 13,14, 15, 16), os resultados que foram obtidos na medida de tempo em segundos, sendo

consideradas tres casa apos a vırgula.

O primeiro teste aplicado foi o de insercao.

Tabela 13. Media Aritmetica de Insercao - 100.000 registros.

O segundo foi o teste de consulta dos dados; e retornava como resultado todos osregistros inseridos na tabela.

Tabela 14. Media Aritmetica de Consulta - 100.000 registros.

A terceira media foi a de Alteracao. Ele foi executado em cada tempo juntamentecom os outros comandos estipulados por teste.

Tabela 15. Media Aritmetica de Alteracao - 100.000 registros.

Por ultimo, foi realizada a media dos tempos de exclusao de cada SGBD no vo-lume de 1.000 registos.

Tabela 16. Media Aritmetica de Exclusao - 100.000 registros.

No teste a seguir pode-se chamar a atencao para diferenca nos resultados, quandotratado o comando de insercao de dados da figura 6.

Figura 6. Resultados de tempo (segundos) - 100.000 registros.

No terceiro e ultimo teste, o Firebird mostrou que e o banco de dados que maisexige espaco para o comando de insercao, 20,217 MB conforme tabela 17.

Tabela 17. Teste com volume de carga com 10000 registros - Medida de tempo.

Apesar de ser o SGBD que teve o melhor desempenho em relacao ao tempo me-dido para os comandos de insercao e alteracao, o PostegreSQL obteve um aumento total,em relacao a sua base inicial, de 44,711 MBytes, ilustrado na figura 7.

Figura 7. Grafico com resultados do terceiro teste - Crescimento da base dedados.

6. Conclusao

E importante ressaltar nesta conclusao que todos os resultados obtidos refletem o ambientede teste no qual os bancos de dados foram colocados nesta pesquisa. Os resultados finaisnao podem ser levados em consideracao como um padrao para qualquer outro tipo deambiente ou aplicacao. Os bancos de dados podem levar uma vantagem em relacao aooutro, quando considerados o ambiente no qual vao ser instalados, que plataforma que iraoutilizar e principalmente as configuracoes que sao efetuadas no inıcio de sua implantacao.Outro ponto de muita importancia e que nesse artigo todos os comandos foram feitos deformas iguais para todos os SGBD‘s. Deve ser levado em consideracao que no momentoda escolha de um banco de dados e possıvel ganhar desempenho nessas mesmas consultas,pois cada banco de dados oferece recursos para aplica-las de formas diferentes e maiseficientes.

Em todos os testes o banco que teve o melhor tempo para a insercao dos dados foio Postgresql. Assim, pode-se constatar que e um banco que, quanto maior o volume dedados inserido, melhor sera o tempo de resposta em relacao aos outros bancos de dados.

Ao fim do terceiro teste, pode-se concluir que o PostgreSql e indicado paraaplicacoes mais robustas, que recebem um grande numero de insercoes durante seu fun-cionamento. Esse banco de dados tambem foi o que apresentou o menor tempo, quandorealizados os procedimentos de alteracao de maior volume de dados.

Ao mesmo tempo em que e um banco agil quando tratados comandos de INSERTE UPDATE, o PostegreSQL e um banco que ocupa muito espaco no disco fısico, o queexige uma maquina com grande capacidade de armazenamento. Foi notado que a custode ser mais rapido nas insercoes, ele cobra essa parcela do HD.

O PostegreSQL tambem foi o banco que teve o pior desempenho, quando reali-zado o comando para consulta dos dados. Conforme (figura8), o custo para consultas de

100.000 foi muito alto, representando quase uma medida de tempo seis vezes maior queo MySQL.

Ja o MySQL, foi o SGBD que obteve menor tempo de consulta em todos os testes,se mostrando um banco agil quando a necessidade da aplicacao for de uma leitura rapidapara acesso aos dados.

O SQL Server 2008 levou uma pequena vantagem no tamanho da base de dadosem todos os testes realizados. Em contra partida foi o que teve o pior desempenho naexclusao dos dados no ultimo teste. O SGBD da Microsoft foi o unico banco proprietarioutilizado nos testes. Ele teve ganhos significativos apenas no primeiro teste com os co-mando de alteracao e exclusao. E um banco de dados que possui inumeros recursos quenao foram levados em consideracao na metodologia aplicada, portanto, nao se pode daruma definicao conclusiva que e uma ferramenta que leva muita desvantagem em relacaoas outras.

Por fim, o firebird obteve o melhor desempenho no segundo e no terceiro testes,mas que ficaram muitos proximos de outros bancos de dados. Pode-se usar o mesmo co-mentario feito ao SQL Server para esse SGBD, pois e uma ferramenta que possui muitosrecursos que nao foram aplicados ao ambiente proposto.

Observa-se que este estudo podera ser complementado nessa mesma linha de pes-quisa, assim sugerindo as analises dos SGBD’s, utilizando outros criterios como:

• analise pelas indexacoes do registros;

• analise da estrutura de gerenciamento do ”buffer”;

• outras clausulas de operacoes da linguagem SQL;

• volumes de cargas maiores;

• processamento de dados em uma ambiente multi-usuario;

ReferenciasBARRIE, H,. Dominando Firebird: Uma Referencia para Desenvolvedores de Bancos

de Dados. ED. Ciencia Moderna , 2006.

CARLOS, S., Comparativo de desempenho de Bancos de dados de Codigo Aberto.(UFPE), 2011 .

CARNEIRO, ALESSANDRO., Tecnicas de Otimizacao de Bancos de Dados, Um es-tudo Comparativo: MySQL e PostegreSQL. (FURG), 2011.

FIREBIRD., http://firebird.sourceforge.net - Consulta Realizada 22/05/12.

GESTAO, REVISTA CIENTIFICA DE ADMINISTRACAO E SISTEMAS DEINFORMACAO/UNIDADE DE ENSINO SUPERIOR, Expoente. V.11, n.11.Jul. /Dez. 2008.

GRAY, J., Database and Transaction Processing Perfomance Handbook (1993), Chapter1. Morgan Kaufman Publishers.

GUIMARAES, LORENA., Um Aplicativo para Teste de Performaces de Bancos deDados Atraves dos Benchmarks TPC-C e TPC-HL.2007. http://www.lia.ufc.br/site -Consulta realizada 12/03/2012.

HOTEK, MIKE., Microsoft SQL Server 2008, Implementacao e Manutencao. Kit deTreinamento, 2010.

LEITE, M., Acessando Bancos de Dados com Ferramentas RAD. Braspor, Ed. 2007.

MENDES, R., Pernanbuco (UFPE), 2006. http://. cin.ufpe.br/ tg/ 2006 - 1/mrnm.pdf -Consulta realizada 19/03/2012 .

POSTGRESQL., http://www.postgresql.org/ - Consulta Realizada 27/03/12.

SILBERSCHATZ, ABRAHAM, Sistemas de Bancos de Dados. Terceira ED. 1999.

SILBERSCHATZ, ABRAHAM., KORT E SUDARSHAM. Sistemas de Bancos deDados. Quinta ED. 2006.

SVOBODOVA, L., Computer Performance Measurement and Evaluation Methods :Analysis and Applications .Vol. 2 .

TPC., http://www.tpc.org/information/benchmarks.asp.