Olá Marcelo,

Quando vc utiliza Like "%%", 

não tem como utilizar índice, ou se utilizá-se ficaria mais lento do que 
acessar diretamente a tabela.

Porque teria que fazer dois acessos, um ao índice e outro a tabela para 
recuperar o registro.

Até onde eu sei funciona desta forma.

Att,

Celso Lorenzetti
Analista de Sistemas
msn: [EMAIL PROTECTED]
--------------------------------------------------------------
SysRS Tecnologia da Informação Ltda.
             www.sysrs.com.br
  ----- Original Message ----- 
  From: Marcelo Alves 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, March 22, 2007 9:02 PM
  Subject: [delphi-br] Re: Performance em View


  Então Rubem, eu já fiz isso, criei os índices em cada campo de 
  telefone das tabelas, mas nada mudou no plano... é como se a view 
  ignorasse os meus índices... será que tenho que criar de outra forma?

  veja abaixo o plano que está sendo executado...

  Comando executado:

  select * from vw_telefones where telefone like '%4646456%'

  plano retornado:

  PLAN (VW_TELEFONES ARQCONTATOS NATURAL)
  PLAN (VW_TELEFONES ARQCONTATOS NATURAL)
  PLAN (VW_TELEFONES ARQCONTATOS NATURAL)
  PLAN (VW_TELEFONES ARQCLIENTES NATURAL)
  PLAN (VW_TELEFONES ARQCLIENTES NATURAL)
  PLAN (VW_TELEFONES ARQCLIENTES NATURAL)
  PLAN (VW_TELEFONES ARQEMPRESAS NATURAL)
  PLAN (VW_TELEFONES ARQEMPRESAS NATURAL)
  PLAN (VW_TELEFONES ARQEMPRESAS NATURAL)
  PLAN (VW_TELEFONES ARQEMPRESAS NATURAL)
  PLAN (VW_TELEFONES ARQEMPRESAS NATURAL)
  PLAN (VW_TELEFONES ARQEMPRESAS NATURAL)
  PLAN JOIN (VW_TELEFONES USU NATURAL, VW_TELEFONES UTE INDEX 
  (PK_ARQUSU_TELEFONES))
  PLAN (VW_TELEFONES ARQCLI_FOR INDEX (RDB$PRIMARY63))
  PLAN (VW_TELEFONES ARQCLI_FOR INDEX (RDB$PRIMARY63))
  PLAN (VW_TELEFONES ARQCLI_FOR INDEX (RDB$PRIMARY63))

  Marcelo.

  --- Em delphi-br@yahoogrupos.com.br, "Rubem Nascimento da Rocha" 
  <[EMAIL PROTECTED]> escreveu
  >
  > 
  > Faz um SELECT nessa View usando um filtro (cláusula WHERE) pro 
  resultado ser 
  > relativamente pequeno. Analisa o plano de execução e daí, com base 
  nisso, 
  > cria índices apropriados pras tabelas envolvidas na VIEW. Sds.
  > 
  > >From: "Marcelo Alves" <[EMAIL PROTECTED]>
  > >Reply-To: delphi-br@yahoogrupos.com.br
  > >To: delphi-br@yahoogrupos.com.br
  > >Subject: [delphi-br] Performance em View
  > >Date: Wed, 21 Mar 2007 01:17:40 -0000
  > >
  > >Pessoal,
  > >
  > >Tenho uma View de Telefones de vários cadastros, ou seja, a junção
  > >dos campos de telefone de algumas tabelas
  > >
  > >Ex:
  > >
  > >TABELA CLIENTES
  > >ID
  > >FONE1
  > >FONE2
  > >FONE3
  > >
  > >TABELA EMPRESAS
  > >ID
  > >FONE1
  > >FONE2
  > >FONE3
  > >FONE4
  > >
  > >
  > >Na criação da View faço vários unions conforme abaixo
  > >
  > >SELECT ID, FONE1, 'CLIENTES' FROM CLIENTES UNION SELECT ID,
  > >FONE2, 'CLIENTES' FROM CLIENTES UNION SELECT ID, FONE3, 'CLIENTES'
  > >FROM CLIENTES UNION SELECT ID, FONE1, 'EMPRESAS' FROM EMPRESAS 
  UNION
  > >SELECT ID, FONE2, 'EMPRESAS' FROM EMPRESAS UNION SELECT ID,
  > >FONE3, 'EMPRESAS' FROM EMPRESAS UNION SELECT ID, FONE4, 'EMPRESAS'
  > >FROM EMPRESAS
  > >
  > >No caso tem tabelas que possuem mais telefones que outras conforme 
  o
  > >exemplo acima..
  > >
  > >Meu problema está sendo a performance porque hoje a view retorna 
  mais
  > >de 170.000 telefones e eu tenho uma pesquisa de Telefones no 
  sistema,
  > >o que se tornou muito lenta, chegando até a travar o servidor 
  quando
  > >executada.. No caso faço a pesquisa direto na view com utilizando
  > >like... Criei índices nos campos de telefone das tabelas utilizadas
  > >na View, mas não obtive nenhuma melhora de performance visto que os
  > >planos usados são NATURAL para todas as tabelas, ou seja, a view 
  não
  > >se utilizou dos índices...
  > >
  > >Existe algo que eu possa fazer para melhorar isso???
  > >
  > >Agradeço desde já a ajuda de Todos...
  > >
  > >Marcelo.
  > >
  > >
  > 
  > __________________________________________________________
  > MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br
  >



   

[As partes desta mensagem que não continham texto foram removidas]

Responder a