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

Responder a