[firebase-br] RES: Carregar Base para Memória
Sandro Souza
escovadordebits em gmail.com
Sex Fev 15 18:41:05 -03 2013
Bom dia/tarde/noite Frederico.
Diga a esse seu amigo da Oracle que se fosse um SGBD Oracle seria
cobrado os olhos da cara e o fígado, além de ter que pagar, e muito bem,
a babá do SGBD, vulgo Oracle DBA, e no final de tudo, ia dar no mesmo ou
ficar pior, porque o Oracle é muito mais pesado que o Firebird.
Mas é compreensível, afinal de contas, ele gastou "os tubos" em cursos e
nas provas de certificação para ter o título de Oracle DBA, enquanto o
Firebird não requer necessariamente um cirurgião especializado, e nesse
caso, ele está defendendo o peixe dele, totalmente compreensível.
Meu nobre, você já tentou gerar um backup dessa base de dados, e
restaurá-la informando o maior tamanho possível de página de dados? Se
não me engano, até o FB 2.1 o tamanho máximo era de 16Kb (16384), e a
partir do 2.5 esse limite passou para 32Kb (32768).
Quanto maior o tamanho da página, mais rápido são os relatórios, pois
com páginas maiores, cada "fetch" lê mais dados por página, e isso
agiliza o processo.
Não sei se falei muita besteira, mas espero ter ajudado mais que
atrapalhado. :D
On 15-02-2013 14:33, Frederico Godoi wrote:
> Quanto a isso beleza Leonardo.
> Criamos um pequeno robô, programado para executar a noite, fora do horário
> de trabalho da empresa, pra evitar sobrecarregar o servidor e etc.
> Mas queria diminuir esse tempo de alguma forma.
> Fico ouvindo um DBA Oracle me enchendo dizendo que "se fosse em Oracle" ele
> faria isso, jogaria tais tabelas para a memória e teria o resultado muito
> mais rápido.
> Pensei que havia algo similar no Firebird para tentar fazer o mesmo.
>
> Obrigado
>
>
> 2013/2/15 Leonardo Carneiro <chesterman86 em gmail.com>
>
>> Oi Frederico. Até onde eu sei, não tem como uma coisa ir para a memória
>> sozinha, ou fazer o próprio FB mandar ela para a memória, sem que ela seja
>> acessada em algum momento.
>>
>> É importante entender que operações de carga (exportação, extração,
>> transformação, etc) e relatórios complexos (consultas de BI, por exemplo),
>> irão ser demoradas e geralmente não executam em tempo real quando se tem
>> uma grande quantidade de dados.
>>
>> Se sua aplicação executa operações desse tipo, é interessante que ela tenha
>> algum mecanismo para executar em background, com o uso de threads, para não
>> travar a interface, ou outra solução similar.
>>
>>
>> 2013/2/15 Frederico Godoi <frederico.godoi em gmail.com>
>>
>>> Respondendo a todos :
>>>
>>> 1. Estou usando Delphi com FIBPlus como conexão.
>>> Tentei fazer usando uma stored procedure, mas a exportação não fica
>>> legal.
>>>
>>> 2. A memória do servidor é suficientemente grande sim Leonardo porém ATÉ
>>> fazer esse fecth a primeira vez, depois não uso mais. Essa primeira que
>> eu
>>> queria acelerar, mandando o Firebird carregar isso na memória antes de
>>> fazer minha exportação.
>>>
>>> Obrigado,
>>>
>>> Frederico
>>>
>>> 2013/2/15 Leonardo Carneiro <chesterman86 em gmail.com>
>>>
>>>> Frederico, se sua base for suficientemente pequena (ou se sua memória
>> for
>>>> suficientemente grande), o fb VAI colocar sua base inteira em memória,
>>> uma
>>>> vez que os dados são acessados pelo menos uma vez.
>>>>
>>>> Só configurar os parâmetros de memória para que comporte o banco.
>>>>
>>>>
>>>> 2013/2/15 Felix - SOL Informática <felix em solsistemas.com>
>>>>
>>>>> Qual "linguagem" você esta usando para acesso ao Firebird? A
>>> exportação é
>>>>> direto por Store Procedure ?
>>>>>
>>>>> Francisco Felix
>>>>> www.solsistemas.com
>>>>>
>>>>>
>>>>> -----Mensagem original-----
>>>>> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Sandro
>>> Souza
>>>>> Enviada em: sexta-feira, 15 de fevereiro de 2013 13:26
>>>>> Para: FireBase; Frederico Godoi
>>>>> Assunto: Re: [firebase-br] Carregar Base para Memória
>>>>>
>>>>> Bom dia/tarde Frederico.
>>>>>
>>>>> Meu nobre amigo, acredito que isso seja mais questão de criatividade
>> e
>>>>> conhecimento da linguagem de programação a ser utilizada.
>>>>>
>>>>> Por exemplo, posso criar classes para representar as tabelas, e
>> outras
>>>>> classes para representar os registros, e lendo essas tabelas posso
>>> copiar
>>>>> esses dados para memória usando essas classes.
>>>>>
>>>>> Daí em diante, a brincadeira acontece dentro da aplicação.
>>>>>
>>>>> Pergunta boba: Você já revisou o plano das suas consultas para ver
>> se a
>>>>> criação de um ou mais índices poderia agilizá-las?
>>>>>
>>>>> On 15-02-2013 12:54, Frederico Godoi wrote:
>>>>>> Boa tarde,
>>>>>>
>>>>>> Alguém sabe um meio, via Firebird direto ou via aplicação para
>>>>>> buscar várias tabelas para a memória ram ?
>>>>>>
>>>>>> Preciso fazer uma grande pesquisa para exportar dados. Essa
>>>>>> exportação hoje demora aprox 2 horas, justamente fazendo o fatch
>> nas
>>>>> tabelas.
>>>>>>
>>>>>> Alguma sugestão ?
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>
Mais detalhes sobre a lista de discussão lista