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