[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