[firebase-br] Testes fb por conta própria e algumas conclusoes (troca de experiencias)

Fabiano A. C. willgauge em yahoo.com.br
Qua Jun 7 13:47:52 -03 2006


    Pessoal , fiz uma aplicaçãozinha de teste, pra saber os limites do fb, 
mas depois que a minha base chega a +- 4gb , o fb fica muito lento, 
desconfio que pode ser algo relacionado com as paginas do fb, alguem tem uma 
sugestão?
    Mas acessa normalmente outros banco de dados, travando (fica lento ou 
corrompe) somente esse de 4 gb...

    E fiz o mesmo teste com o Postgree 8.13, mesma estrutura da tabela, 
pude notar que consultas/Inserçôes quando a base do PG tinha + - 1.000.000 
de registros são ligeiramente + lentas que o Fb, mas quando a base chega a 
+ - 60.000.000 de registros as coisas se invertem, e olhando a estrutura do 
banco (arquivos) do PG pude notar algo interessante: ele "quebra" a base, 
enquanto o FB fica com 2gb , o PG quebra em 2 arquivos de 1gb e o restante 
em pequenos arquivos. Esse pode ser um motivo que o fb fica mais lento com 
bases muito grandes.

    Gostaria de saber se há alguma maneira de criar um banco FB que quebre 
automaticamnete a cada 1 gb de dados e qual a opinião de vcs?

   OBS:Esse programinha fica inserindo dados sem parar, realizando commit a 
cada 500 inserts , fica inserindo somente nome, valor e data.

Dados:
-------

Versão do Firebird: 1.53
Banco: Carga.fdb
Versão Delphi: 7 +  IBX
AMD64 2800, 1gb ram Hd 80gb, winxp pro, base de dados em HD independente de 
80gb
Tabela: carga

Script do Banco de dados:
----------------------------

SET SQL DIALECT 3;
SET NAMES WIN1252;
CREATE DATABASE '127.0.0.1:D:\CARGA.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1252;
/******************************************************************************/

/****                               Domains 
****/

/******************************************************************************/
CREATE DOMAIN DATA AS
DATE;
CREATE DOMAIN ID AS
INTEGER;
CREATE DOMAIN NOME AS
CHAR(50)
COLLATE PXW_INTL850;
CREATE DOMAIN SENHA AS
CHAR(50)
COLLATE PXW_INTL850;
CREATE DOMAIN VALOR_MONETARIO AS
NUMERIC(15,2)
DEFAULT 0;

/******************************************************************************/
/****                              Generators 
****/
/******************************************************************************/
CREATE GENERATOR GEN_CARGA_ID;
SET GENERATOR GEN_CARGA_ID TO 42623899;

/******************************************************************************/
/****                                Tables 
****/
/******************************************************************************/
CREATE TABLE CARGA (
    ID          ID NOT NULL,
    NOME        NOME,
    DINHEIRO    VALOR_MONETARIO,
    DATA_ATUAL  DATA
);
/******************************************************************************/
/****                               Triggers 
****/
/******************************************************************************/
SET TERM ^ ;

/* Trigger: CARGA_BI */

CREATE TRIGGER CARGA_BI FOR CARGA
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GEN_CARGA_ID,1);
END
^

SET TERM ; ^



-------------------------------
Até logo e boas festas na copa!







		
_______________________________________________________ 
Navegue com o Yahoo! Acesso Grátis, assista aos jogos do Brasil na Copa e ganhe prêmios de hora em hora! 
http://br.yahoo.com/artilheirodacopa/





Mais detalhes sobre a lista de discussão lista