[firebase-br] Ajuda para analizar/entender Plan Analizer.

Kleber Caneva kdcc em terra.com.br
Qui Set 13 08:35:46 -03 2007


Pra mim está perfeito... todos os Joins estão usando index.

A unica tabela que não usa Index é a Principal (MOVTOITE), provavelemnte pq 
o campo MARCOD não está indexado.

A unica dica que fica, é se vc for fazer muitas pesquisas usando esse campo 
e ele não tiver uma granulidade baixa, você pode criar um indice neste 
campo.

[]´s

Kléber Caneva


----- Original Message ----- 
From: "Fausto" <fausto.s.a em uol.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, September 12, 2007 6:57 PM
Subject: [firebase-br] Ajuda para analizar/entender Plan Analizer.


Boa noite pessoal, estou fazendo uma query no ibexpert e gostaria da
opinião de vocês sobre este plan que esta sendo retornado..
Plan
PLAN JOIN (MI NATURAL,CO INDEX (PK_CORES),MA INDEX (PK_MARCA),MC INDEX
(PK_MOVTODOC),TM INDEX (PK_TIPMOVTO),PR INDEX (PK_PRODUTOS),GR INDEX
(PK_GRUPOS),FO INDEX (PK_FORNECEDORES))

Adapted Plan
PLAN JOIN (MI NATURAL,CO INDEX (PK_CORES),MA INDEX (PK_MARCA),MC INDEX
(PK_MOVTODOC),TM INDEX (PK_TIPMOVTO),PR INDEX (PK_PRODUTOS),GR INDEX
(PK_GRUPOS),FO INDEX (PK_FORNECEDORES))

------ Performance info ------
Prepare time = 20ms
Execute time = 10ms
Avg fetch time = 0,83 ms
Current memory = 1.161.544
Max memory = 1.292.272
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 797

A instrução SQL é essa..:
SELECT
  MI.MOVLAN,MI.MOVDAT,MI.PROREF,PR.PRODES,MA.MARDES,CO.CORDES,
  FO.FORNOM,MI.GRACOD,MI.PROSIG,MI.MOVCUS,MI.MOVPRE,MI.MOVDSC,
  MI.MOVTIP,TM.TIPDES,MI.PROQ01,MI.PROQ02,MI.PROQ03,MI.PROQ04,
  MI.PROQ05,MI.PROQ06,MI.PROQ07,MI.PROQ08,MI.PROQ09,MI.PROQ10,
  MI.PROQ11,MI.PROQ12,MI.PROQ13,MI.MOVTOT
FROM
  MOVTOITE MI

  INNER JOIN MOVTODOC MC ON (MI.MOVLAN = MC.MOVLAN)
  INNER JOIN PRODUTOS PR ON (MI.PROCOD = PR.PROCOD)
  INNER JOIN FORNECEDORES FO ON (PR.FORCOD = FO.FORCOD)
  INNER JOIN GRUPOS GR ON (PR.GRUCOD = GR.GRUCOD)
  INNER JOIN MARCA MA ON (MI.MARCOD = MA.MARCOD)
  INNER JOIN CORES CO ON (MI.CORCOD = CO.CORCOD)
  INNER JOIN TIPMOVTO TM ON (MC.TIPCOD = TM.TIPCOD)
  where (MI.MARCOD = 1)

Não estou sabendo analisa-lo poderiam me dizer se estes valores são
"bons" ou tenho que melhorar alguma coisa com esta condição no where
*where MI.MARCOD = 1* foi retornado 19 registros de uma base com 123
registros.
Grato

-- 
Fausto Alves
Franca - SP
Enviado pelo Mozilla Thunderbird
http://br.mozdev.org/thunderbird


______________________________________________
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/cgi-bin/imail.cgi?+_u=kdcc&_l=1,1189634720.687295.16278.cadarga.hst.terra.com.br,5557,Des15,Des15






Mais detalhes sobre a lista de discussão lista