FIREBIRD: UMA ANÁLISE DE PERFORMANCE



Documentos relacionados
TESTE DE PERFORMANCE DO BANCO DE DADOS SQLITE

Introdução ao SQL. Aécio Costa

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Banco de Dados. Maurício Edgar Stivanello

Prof. Omero, pág. 63. Banco de Dados InterBase.

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Disciplina: Unidade V: Prof.: Período:

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Prof.: Clayton Maciel Costa

Modelo Cliente/Servidor Por HIARLY ALVES

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Bancos de Dados I. Integridade semântica

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I

Principais Comandos SQL Usados no MySql

SQL Structured Query Language

Comandos de Manipulação

Introdução a Informática. Prof.: Roberto Franciscatto

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

O que são Bancos de Dados?

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

Linguagem SQL (Parte I)

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

GBD. Introdução PROF. ANDREZA S. AREÃO

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Prof. Marcelo Machado Cunha

Disciplina de Banco de Dados Introdução

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados.

A linguagem SQL

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Oficina. Praça das Três Caixas d Água Porto Velho - RO

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

Conceitos Básicos. Conceitos Básicos. Sistema de Arquivos. Prof. Edilberto Silva - edilms@yahoo.com. Sistemas de Informação Brasília/DF

Sistemas de Banco de Dados

Linguagem SQL Sub-linguagem DDL

BANCO DE DADOS CONCEITOS BÁSICOS

SQL (STRUCTUREDQUERY LANGUAGE)


Structured Query Language (SQL)

SQL. Autor: Renata Viegas

Banco de Dados. Professor: Rômulo César.

Noções de. Microsoft SQL Server. Microsoft SQL Server

SQL (STRUCTUREDQUERY LANGUAGE)

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Ferramentas de Administração. PostgreSQL

Introdução ao SQL. O que é SQL?

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Comandos DDL. id_modulo = id_m odulo

MYSQL BÁSICO. 12 Horas Instrutor: Antonio Itamar Júnior

Persistência de Dados

Apresentação... Nome: Vanderlei Cordeiro Frazão

Banco de Dados Avançados Banco de Dados Ativo

Programação SQL. Introdução

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

Linguagem SQL Parte I

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Programação Orientada a Objetos (DPADF 0063)

18/03/2012. Formação.

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Persistência e Banco de Dados em Jogos Digitais

Docente: Éberton da Silva Marinho

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Banco de Dados. Prof. Antonio

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

lt++: Biblioteca C++ para Acesso ao Gerenciador de Banco de Dados SQLite

Banco de Dados I Introdução

Banco de Dados com PHP

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

Introdução a Sistemas de Bancos de Dados

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Curso PHP Aula 08. Bruno Falcão

Disciplina de Banco de Dados Parte V

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

4.6. SQL - Structured Query Language

Programação com Acesso a Banco de Dados

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Introdução a Java. Hélder Nunes

Linguagem de Programação Introdução a Linguagem Java

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Transcrição:

FIREBIRD: UMA ANÁLISE DE PERFORMANCE Tiago Gomes Fagundes 1, Renato Stocco Bonatto 2, Leacir Nogueira Bastos 3, Brauliro Gonçalves Leal 4 RESUMO: Avaliou-se a performance do gerenciador de banco de dados Firebird 1.5 ao executar 10 milhões de operações (insert, select e update). A duração média das operações unitárias (DOU) de insert, select e update foram iguais a 0,00260, 1 e 0,00140s, respectivamente. As equações ajustadas para os valores da duração acumulada das operações (DOA) em função do número de operações (NOP) foram: insert DOA=1294,6 NOP, com R 2 =0,9997; select DOA=95,717 NOP, com R 2 =1,0; update DOA=697,32 NOP, com R 2 =0,9983. Operações de update e select requerem 52,8 e 7,5% do tempo que as de insert, respectivamente. Os resultados mostraram que o tempo acumulado das operações cresceu linearmente, portanto, o tempo de execução de uma operação não depende do número de operações já realizadas. PALAVRAS-CHAVE: banco de dados, fb++, sql, open source. INTRODUÇÃO Pode-se definir Banco de Dados como uma coleção de dados relacionados com uma estrutura regular, salvos em um computador de forma que um programa de computador possa consultá-los com algum propósito específico. Utilizados em muitas aplicações, bancos de dados abrangem praticamente todas as áreas da computação. Um banco de dados normalmente é mantido e acessado por um Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD é um conjunto de software responsável pela organização, persistência e recuperação dos dados, cujo principal objetivo é gerenciar o acesso e a manutenção dos dados. Existem muitos SGBD s, alguns livres outros comerciais. De maneira geral são equivalentes em relação as suas funcionalidades, e possibilitam, com algumas diferenças, um tratamento adequado dos dados. Muitos dos SGBD s utilizam a linguagem padrão para consultas SQL, com ela ganha-se flexibilidade para se operar dados em SGBD s. O Firebird é um SGBD de alta performance, disponível para 1 Graduando em Ciência da Computação pela Universidade Federal de Viçosa. Email: tiagofagundes@ gmail.com 2 Bacharel em Ciência da Computação pela Universidade Federal de Viçosa. Email: renatobonatto@ yahoo.com.br 3 Professor do Departamento de Informática da UFV, Ph.D in Computer Science. Email: leacir@ufv.br 4 Doutor em Engenharia Agrícola pela UFV 1999, Diretor Científico do Grupo Intec. Email: leal@ grupointec. com.br

plataformas de 32 e 64 bits. É um software livre desde 2000. Foi baseado no código do InterBase da Borland. O Firebird possui diversos níveis de segurança, o que o torna extremamente confiável, além disso, ele é um banco de dados de manipulação simples, Ele é mantido por uma comunidade internacional de desenvolvedores mantida pela FirebirSQL Foudation [1]. Está em conformidade com os requisitos SQL-92 ANSI (nível de entrada), com extensões próprias para gerenciamento de Generators, Triggers e Stored Procedures. O Firebird é um sistema gerenciador de banco de dados relacional (SGDBR) cliente/servidor que oferece muitas características do ANSI SQL-92, com versões para Linux, Windows e uma variedade de plataformas Unix. Oferece excelente concorrência, desempenho elevado e arquitetura de múltipla geração, permitindo manipular várias versões de registros em qualquer momento. Dessa forma, o objetivo deste trabalho é avaliar a performance do SGBD Firebird 1.5. MATÉRIAIS E MÉTODOS Foi criada uma tabela A, indexada, com os campos conforme descritos na Tabela 1, um generator e uma trigger associada ao campo A0 para torná-lo auto-incremento. Tabela 1 Descrição da tabela A utilizada com seus campos e tipos. Campo A0 A1 A2 A3 A4 A5 A6 Tipo INTEGER NOT NULL Integer NUMERIC(15,2), Char(26) Varchar(26) Time Date Foi escrito um programa em C++ para realizar 10 milhões de operações (insert, select e update), divididas em 20 blocos de operações (a cada operação correspondeu um commit), Anexo 1. Utilizou um computador Intel Pentium 4, 2.8 Ghz, 1.0 Gb RAM, para executar o software e obter a duração das operações realizadas. RESULTADO E DISCUSSÃO A Tabela 2 apresenta a duração acumulada das operações (DOA) e a duração média da operações unitárias (DOU) por bloco de insert, select e update em função do número de operações (NOP). Os valores da DOA variaram de 1.187 a 25.625s; 95 a 1.912s; e 765 a 13.548s para as operações de insert, select e update, respectivamente. Por

outro lado, os valores médios da DOU para as operações de insert, select e update, foram iguais a 0,00260; 1; 0,00140, respectivamente. As figuras 1.a, 1.c, 1.e, mostram os gráficos da variação dos valores do DOA em função do número de operações insert, select e update, respectivamente. As figuras 1.b, 1.d, 1.f mostram os gráficos da variação dos valores do DOU em função do número de operações insert, select e update, respectivamente. As figuras 1.a, 1.c, 1.e, também apresentam equações ajustadas para os valores do DOA em função do número de operações; sendo DOA=1294,6 NOP, com R 2 =0,9997, para operações de insert; DOA=95,717 NOP, com R 2 =1,0 para a operação de select; e DOA=697,32 NOP, com R 2 =0,9983 para a operação de update. Tabela 2 Duração acumulada das operações (DOA) e a duração média das operações unitárias (DOU) por bloco de insert, select e update em função do número de operações (NOP). NOP Inserções Seleções Alterações ( ) DOA (s) DOU (s/insert) DOA (s) DOU (s/select) DOA (s) DOU (s/update) 1 1187 0,00237 95 0 765 0,00153 2 2421 0,00242 191 1 1413 0,00141 3 3710 0,00247 288 2 2169 0,00145 4 4947 0,00247 384 2 2891 0,00145 5 6318 0,00253 480 2 3626 0,00145 6 7662 0,00255 576 2 4346 0,00145 7 8971 0,00256 673 2 5002 0,00143 8 10343 0,00259 769 2 5703 0,00143 9 11690 0,00260 864 2 6368 0,00142 10 13022 0,00260 960 2 7058 0,00141 11 14360 0,00261 1055 2 7887 0,00143 12 15633 0,00261 1150 2 8572 0,00143 13 16929 0,00260 1245 2 9219 0,00142 14 18243 0,00261 1340 1 9901 0,00141 15 19537 0,00260 1435 1 10574 0,00141 16 20820 0,00260 1530 1 11206 0,00140 17 22093 0,00260 1626 1 11806 0,00139 18 23307 0,00259 1722 1 12382 0,00138 19 24449 0,00257 1816 1 12967 0,00136 20 25652 0,00257 1912 1 13548 0,00135 Média - 0,00257-1 - 0,00135

30000 25000 20000 15000 10000 5000 y = 1294,6x R 2 = 0,9997 0,00300 0,00250 0,00200 0,00150 0,00100 0,00050 0 7 0,00000 7 (a) (b) 2500 2000 y = 95,717x R 2 = 1 0,00020 1500 1000 500 0 7 7 (c) (d) 16000 0,00180 14000 12000 10000 8000 6000 4000 y = 697,32x R 2 = 0,9983 0,00160 0,00140 0,00120 0,00100 0,00080 0,00060 0,00040 2000 0,00020 0 0,00000 7 7 (e) Figura 1 Variação dos valores de DOA e DOU em função do número de operações insert (a, b), select (c, d) e update(e, f). (f) Das três operações avaliadas a que apresentou maior tempo de execução foram as de insert, seguida pelas de update que, por sua vez exigiram mais tempo que as de select. Operações de update e select requerem 52,8 e 7,5% do tempo que as de insert, respectivamente. Embora todas as operações realizam acesso ao banco de dados, as de insert utilizam mais recursos computacionais uma vez que alteram substancialmente a estrutura do banco de dados, aumentando o número de registros e criando e atualizando índices. Update não aumenta o número de registros, porém podem alterar seus valores. Select, por sua vez, não alteram o banco. Conforme pode-se observar na figura1, os valores de DOA, variaram linearmente com NOP, para as três operações analisadas. O tamanho do banco de dados vazio era de 263 Kb, ao

final das inserções o seu tamanho era de 1065529 Kb, sendo assim a média de Kbytes por registros e controles inerentes ao banco de dados foi de 0,1065266. CONCLUSÃO Avaliou-se a performance do SGBD Firebird 1.5 ao executar 10 milhões de operações (insert, select,update), cuja durações médias foram de 0,00260, 1 e 0,00140s para insert, select update respectivamente. As equações ajustadas para os valores duração acumulada das operações (DOA) em função do número de operações (NOP) foram DOA=1294,6 NOP, com R 2 =0,9997, para operações de insert; DOA=95,717 NOP, com R 2 =1,0 para a operação de select; e DOA=697,32 NOP, com R 2 =0,9983 para a operação de update. Operações de update e select requerem 52,8 e 7,5% do tempo que as de insert, respectivamente. O tempo acumulado das operações cresceu linearmente e, portanto, o tempo de execução de uma operação não depende do número de operações já realizadas. REFERÊNCIAS BIBLIOGRÁFICAS [1]. FirebirSQL Foudation. Disponível em: <http://www.firebirdsql.org/> Acesso em : 09 Set 2007. Anexo 1 Resumo do código utilizado. #include fbdriver.h #include fbquery.h #define NBLOCO 20 #define BLOCO string itos( int x ) { char sz[22]; sprintf( sz, %d, x ); return sz; } int main( void ) { time_t ini = time(null); int c;

fbdriver *db = new fbdriver(); fbquery *Query = new fbquery(); db->attach( FB++, fb++, fb++.fdb ); Query->Open( db->status, db->db ); for( int k = 0; k < NBLOCO; k++ ) for( int i = 0; i < BLOCO; i++ ) Query->SQL( insert into A (A1,A2,A3,A4,A5,A6) values(1,1.2, aaaaa, aaaaa, 11:11:11, 23.09.2007 ) ); c = 1; for( int k = 0; k < NBLOCO; k++ ) for( int i = 0; i < BLOCO; i++ ) Query->SQL( select * from A where A0= +itos(c++)); c = 1; for( int k = 0; k < NBLOCO; k++ ) for( int i = 0; i < BLOCO; i++ ) Query->SQL( update A set A1=1, A2=1.2, A3= aaaaa, A4= aaaaa, A5= 11:11:11, A6= 23.09.2007 where A0= + itos(c++)); Query->Close(); delete Query; db->detach(); delete db; system( pause ); return 0; } //------------------------------------------------------