[firebase-br] Acelerando View

Humberto Reis hsreisjr em yahoo.com.br
Qui Mar 30 19:56:54 -03 2006


Caros Colegas,

Tenho uma view (abaixo) que é muito lenta, acredito ser pelo fator de fazer UNION em 5 tabelas. É possível incluir um índice?

Grato,

Humberto

CREATE VIEW VW_PESSOA(
    CODIGO,
    NOME,
    NOMEREDUZIDO,
    TIPO,
    TIPOPESSOA,
    COMBINACAO,
    COD_TABELAPRECO,
    DOCUMENTO,
    LISTANEGRA,
    LIMITECREDITO,
    ATIVO)
AS
select LJ.Codigo,
       LJ.Nome as Nome,
       LJ.Nome_Fantasia as NomeReduzido,
       LJ.tipo,
       Cast('LOJA' as VarChar(10)) as TipoPessoa,
       LJ.Combinacao,
       cast('  ' as char(2)) as cod_tabelapreco,
       LJ.cgc as Documento,
       cast('0' as Char(1)) as ListaNegra,
       cast('0' as numeric(18,4)) as LimiteCredito,
       LJ.ativo
from loja LJ
where LJ.tipo = 'L'
union all
select FC.Codigo,
       FC.Nome as Nome,
       FC.Apelido as NomeReduzido,
       FC.tipo,
       Cast('EMPREGADO' as VarChar(10)) as TipoPessoa,
       FC.Combinacao,
       cast('  ' as char(2)) as cod_tabelapreco,
       cast(FC.cpf as char(14)) as Documento,
       cast('0' as Char(1)) as ListaNegra,
       FC.limitecredito as LimiteCredito,
       FC.ativo
from funcionario FC
where FC.tipo = 'E'
union all
select FD.Codigo,
       FD.Nome as Nome,
       FD.NomeReduzido as NomeReduzido,
       FD.tipo,
       Cast('FORNECEDOR' as VarChar(10)) as TipoPessoa,
       FD.Combinacao,
       cast('  ' as char(2)) as cod_tabelapreco,
       FD.cgc_cpf as Documento,
       cast('0' as Char(1)) as ListaNegra,
       FD.limitecredito as LimiteCredito,
       FD.ativo
from fornecedor FD
where FD.tipo = 'F'
union all
select CL.Codigo,
       CL.Nome as Nome,
       CL.NomeReduzido as NomeReduzido,
       CL.tipo,
       Cast('CLIENTE' as VarChar(10)) as TipoPessoa,
       CL.Combinacao,
       CL.Cod_TabelaPreco,
       CL.Cgc_Cpf as Documento,
       CL.listanegra as ListaNegra,
       CL.limitecredito as LimiteCredito,
       CL.ativo
from cliente CL
where CL.tipo = 'C'
;


Mais detalhes sobre a lista de discussão lista