Re: [firebase-br] PERFORMANCE, help galera (toda sugestão é bem vinda), A/C: Marlon David, Kléber Caneva, Eduardo Jedliczka (TeamFB)

Kléber Caneva kdcc em terra.com.br
Sex Jun 9 16:52:01 -03 2006


Olhando por cima o FOR SELECT, o que pode estar causando lentidão seja a UDF 
STRLEN.

Para testar, criei um campo TAMANHO, e faça armazene o STRLEN nele..

Ai use esse camo no CASE...

Se melhorar, vc criar um Trigger para atualizar esse campo toda vez que for 
um novo valor para o campo.

[]´s

Kléber Caneva


----- Original Message ----- 
From: "Rodrigo de Freitas" <rodrigo em rlzinformatica.com.br>
To: <lista em firebase.com.br>
Sent: Friday, June 09, 2006 6:10 PM
Subject: Re: [firebase-br] PERFORMANCE, help galera (toda sugestão é bem 
vinda), A/C: Marlon David, Kléber Caneva, Eduardo Jedliczka (TeamFB)


A/C: Marlon David,

 O problema se encontra numa Stored Procedure, analisando o PLAN dessa
procedure, e das tabelas utilizadas todas
estaum sendo lidas pelas PK, ate ai acho q ta chiq...

 Mas se eu comentar essas 3 tabelas (gigantes), o calculo fica um TIRO,
muito rapido, foi ai q cheguei nessa conclusão

 Sobre bkp/restore, foi a primeira q realizamos diante dessa situação;

 Agora sobre aumentar o DefaultDbCachePages, SortMemBlockSize e
SortMemUpperLimit no firebird.conf,
 naum si como funciona irei pesquisar e fazer as alterações



A/C: Kléber Caneva
 Os select das 3 tabelas estaum individuais, analizei pelo plan e todos
estaum sendo lidos pelas PK´s segue abaixo

 Obs: Esse SQl é nescessario rodar 2 vezes para obter a leitura atual e
anterior;

 SELECT LEITURA_SANEAMENTO.LTRSANANOMES, LEITURA_SANEAMENTO.LTRSANSEQ,
LEITURA_SANEAMENTO.LTRSANDATA, LEITURA_SANEAMENTO.LTRSANLEITURAMES,
LEITURA_SANEAMENTO.LTRSANCONSUMOINFORMADO,
LEITURA_SANEAMENTO.OCORCODLEITURAMES
        FROM LEITURA_SANEAMENTO
        WHERE LEITURA_SANEAMENTO.LTRSANANOMES = :PANO || '/' || :PMES
        AND LEITURA_SANEAMENTO.IMOBURBCOD   = :IMOBURBCOD
        AND LEITURA_SANEAMENTO.LTRSANSEQ    = :LTRSANSEQ
        ORDER BY 1

 FOR SELECT PARCELAMENTO_SERVICO.PARCSERVANOEXERCICIO,
PARCELAMENTO_SERVICO.PARCSERVNUMERO, PARCELAMENTO_SERVICO.RECCOD,
PARCELAMENTO_SERVICO.PARCSERVGRUPOCADASTRO,
PARCELAMENTO_SERVICO.PARCSERVGRUPOCOD,
PARCELAMENTO_SERVICO.PARCSERVPARCELAINICIAL,
PARCELAMENTO_SERVICO.PARCSERVQTDPARCELA, PARCELAMENTO_SERVICO.INDECONCOD,
   RECEITA_PARCELAMENTO_SERVICO.RECPARCSERVSEQ,
RECEITA_PARCELAMENTO_SERVICO.RECCODTAXA,
RECEITA_PARCELAMENTO_SERVICO.RECPARCSERVVALORLANCADO,
RECEITA_PARCELAMENTO_SERVICO.RECPARCSERVVALORRESTANTE, NULL, NULL
   FROM PARCELAMENTO_SERVICO, RECEITA_PARCELAMENTO_SERVICO
   WHERE PARCELAMENTO_SERVICO.PARCSERVANOEXERCICIO =
RECEITA_PARCELAMENTO_SERVICO.PARCSERVANOEXERCICIO
     AND PARCELAMENTO_SERVICO.PARCSERVNUMERO       =
RECEITA_PARCELAMENTO_SERVICO.PARCSERVNUMERO
     AND
     (
     CASE
     WHEN STRLEN(PARCELAMENTO_SERVICO.PARCSERVPARCELAINICIAL) = 1 THEN
PARCELAMENTO_SERVICO.PARCSERVANOEXERCICIO || '/0' ||
PARCELAMENTO_SERVICO.PARCSERVPARCELAINICIAL
     WHEN STRLEN(PARCELAMENTO_SERVICO.PARCSERVPARCELAINICIAL) = 2 THEN
PARCELAMENTO_SERVICO.PARCSERVANOEXERCICIO || '/'  ||
PARCELAMENTO_SERVICO.PARCSERVPARCELAINICIAL
     END) <= :CALCANOMESREF
     AND PARCELAMENTO_SERVICO.PARCSERVGRUPOCADASTRO = :GRUPOCADASTRO
     AND PARCELAMENTO_SERVICO.PARCSERVGRUPOCOD      = :GRUPOCODIGO

   ORDER BY PARCELAMENTO_SERVICO.PARCSERVANOEXERCICIO,
PARCELAMENTO_SERVICO.PARCSERVNUMERO,
RECEITA_PARCELAMENTO_SERVICO.RECPARCSERVSEQ,
RECEITA_PARCELAMENTO_SERVICO.RECCODTAXA

O Problema da operacao é qdo acesso as 3 tabelas q citei, se eu comenta-
las
a procedure fica um tiro...



A/C: Eduardo Jedliczka (TeamFB)
 Hoje nosso sistema de arquivos é NTFS, o Page Size atual do banco 4096,
 Pelo q li isso depende do HD se fat32 ou NTFS, ele estava com 16.384, e
depois q baixamos ele ficou + rapido (ganhamos uns minutinhos...)

 Sobre o gargalo (Rede ou Server), depois q colocamos mais memoria notei q
o
processamento no SERVER parou de atingir os 100% e de utilizar memoria
swap;
 O Server naum atinge mais os 100% de processamento, no gerenciador de
taferas da para notar q ele trabalha folgado... (mas naum da o resultado,
tipo fica amarrado)

 Analisado o PLAN a unica coisa q consigo entender (é meio confuso) é q os
dados estaum sendo lido pelas PK´s



Valeu pelas dica galera...



----- Original Message -----
From: "marlon david de souza" <marlon em sysmo.com.br>
To: "Rodrigo de Freitas" <rodrigo em rlzinformatica.com.br>; "FireBase"
<lista em firebase.com.br>
Sent: Friday, June 09, 2006 6:20 AM
Subject: Re: [firebase-br] PERFORMANCE, help galera (toda sugestão é bem
vinda)


  Primeiro analise o "plan" da consulta SQL que está usando estas 3 tabelas
para ver o numero de registros que está sendo lido, bom como os índices
usados.
  Outra coisa à se fazer é um backup/restore da base.
  Se o Firebird for Super-Server, tente aumentar os seguintes parametros no
firebird.conf: DefaultDbCachePages, SortMemBlockSize e SortMemUpperLimit.

Em Sex 09 Jun 2006 11:54, Rodrigo de Freitas escreveu:
> Bom dia grupo
>
> Estou me deparando com um problema de PERFORMANCE q é a coisa mais [com
> todo respeito (FODA) de se resolver], pois naum existe debugador e muitos
> menos fonte para analisar e entender seu funcionamento, o q se encontra é
> apenas Probabilidades de situações (nada concreto)
>
> Entaum venho ao grupo solicitar alguma dica ou procedimentos a adotar,
> para
> solucionar ou amenizar esse problema
>
>
> Minha situacao;
>  - O Banco contem 3.5Gb é esta instalado num Server P4 (Dedicado), (sem
HD
> Scsi) com 1Gb de Ram;
>  - Sistema Operacional Windows Server (2003);
>
> A tabela principal possui 180.500 registros
>
> As outras 2 tabelas relacionadas a ela
>  2ª 1.706.593 registros
>  3ª 7.840.762 registros
>
> O problema de performance acontece somente na Leitura dessas 3 tabelas
das
> 152 existentes, toda parte de
> processamento (Calculos em Stored Procedures) é rápida, ao debugar a
> procedure noto q o (gargalo) acontece na leitura dessas 3 tabelas...
>
> Sobre Indices e relacionamentos, criamos de tal maneira (somente o
> nescessario) para um bom relacionamentos (naum entupimos de indices);
>
>
> É isso ai turma,
> E ai por onde devo começar ???
>
> Rodrigo de Freitas




______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1149880508.396041.4733.ambrose.hst.terra.com.br,8881,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 09/06/2006 / Versão: 
4.4.00/4781
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista