Lentidao (view)
Amigos, bom dia.
Tenho uma Tabela de Produtos, 13.000 Itens +-, e uma outra, de Produtos Similares, +- 200 itens
preciso fazer um select para unir os itens.
resolvi fazer uma view:
CREATE VIEW TODOSPRODUTOS(
PSCODIGO,
PSDESCRICAO,
PSAPLICACAO,
PSNUMFABRICANTE,
PSNUMORIGINAL,
PSPRECO,
PSCUSTO,
PSMARGEM,
PSSIMILAR,
PSSALDO,
PSUNIDADE,
PSCODIGOMARCA,
PSCODIGOFORN,
PSCODIGOGRUPO,
PSFIGURA)
AS
SELECT PS.PSCODIGO,
PS.PSDESCRICAO,
PS.PSAPLICACAO,
PS.PSNUMFABRICANTE,
PS.PSNUMORIGINAL,
PS.PSPRECO,
PS.PSCUSTO,
PS.PSMARGEM,
PS.PSSIMILAR,
PS.PSSALDO,
PS.PSUNIDADE,
PS.PSCODIGOMARCA,
PS.PSCODIGOFORN,
PS.PSCODIGOGRUPO,
PS.PSFIGURA
FROM PRODUTOSIMIL PS
UNION ALL
SELECT PR.PRCODIGO,
PR.PRDESCRICAO,
PR.PRAPLICACAO,
PR.PRNUMFABRICANTE,
PR.PRNUMORIGINAL,
PR.PRPRECO,
PR.PRCUSTO,
PR.PRMARGEM,
PR.PRSIMILAR,
PR.PRSALDO,
PR.PRUNIDADE,
PR.PRCODIGOMARCA,
PR.PRCODIGOFORN,
PR.PRCODIGOGRUPO,
PR.PRFIGURA
FROM PRODUTO PR
LEFT JOIN FORNECEDOR F ON(F.FOCODIGO = PR.PRCODIGOFORN)
LEFT JOIN MARCA M ON(M.MACODIGO = PR.PRCODIGOMARCA)
LEFT JOIN GRUPO G ON(G.GRCODIGO = PR.PRCODIGOGRUPO)
;
bom.
Quando preciso fazer uma pesquisa, demora pouco, tá aceitavel, tipo, 2 segundos eu ja tenho o resultado.
so que:
tenho uma tabela de Ofertas.
Campos,
CodigoOferta, CodigoProduto, Preco, ItemSimilar.
ae, montei o codigo.
SELECT OD.*,
PR.PSDESCRICAO,
PR.PSAPLICACAO,
PR.PSSIMILAR
FROM OFDETALHE OD
LEFT JOIN TODOSPRODUTOS PR ON(PR.PSCODIGO = OD.ODPRCODIGO AND PR.PSSIMILAR = OD.ODPRSIMILAR)
WHERE
OD.ODCODIGO = :OF
Cara, esse select demora uns 10 segundos pra responder, retornando apenas 20 itens.
quando preciso navegar pelo grid, demora demais para o ponteiro se mover.
Nao sei como resolver.
Alguma dica, alternativa, solucao.
Obrigado.
PS:
Lembrando.
Tenho uma tabela de produtos,
outra de produtos similares,
os campos sao identicos.
1 produto que tem em Tabela de Produtos tambem pode estar em Tabela de Produtos Similares.
Preciso Unir estas informacoes num select.
Quando preciso ver os itens de uma Oferta, que amarra os campos com Tabela de Produtos e Tabela de Produtos Similares, ae o bicho ta pegando..
Obrigado a todos.
Tenho uma Tabela de Produtos, 13.000 Itens +-, e uma outra, de Produtos Similares, +- 200 itens
preciso fazer um select para unir os itens.
resolvi fazer uma view:
CREATE VIEW TODOSPRODUTOS(
PSCODIGO,
PSDESCRICAO,
PSAPLICACAO,
PSNUMFABRICANTE,
PSNUMORIGINAL,
PSPRECO,
PSCUSTO,
PSMARGEM,
PSSIMILAR,
PSSALDO,
PSUNIDADE,
PSCODIGOMARCA,
PSCODIGOFORN,
PSCODIGOGRUPO,
PSFIGURA)
AS
SELECT PS.PSCODIGO,
PS.PSDESCRICAO,
PS.PSAPLICACAO,
PS.PSNUMFABRICANTE,
PS.PSNUMORIGINAL,
PS.PSPRECO,
PS.PSCUSTO,
PS.PSMARGEM,
PS.PSSIMILAR,
PS.PSSALDO,
PS.PSUNIDADE,
PS.PSCODIGOMARCA,
PS.PSCODIGOFORN,
PS.PSCODIGOGRUPO,
PS.PSFIGURA
FROM PRODUTOSIMIL PS
UNION ALL
SELECT PR.PRCODIGO,
PR.PRDESCRICAO,
PR.PRAPLICACAO,
PR.PRNUMFABRICANTE,
PR.PRNUMORIGINAL,
PR.PRPRECO,
PR.PRCUSTO,
PR.PRMARGEM,
PR.PRSIMILAR,
PR.PRSALDO,
PR.PRUNIDADE,
PR.PRCODIGOMARCA,
PR.PRCODIGOFORN,
PR.PRCODIGOGRUPO,
PR.PRFIGURA
FROM PRODUTO PR
LEFT JOIN FORNECEDOR F ON(F.FOCODIGO = PR.PRCODIGOFORN)
LEFT JOIN MARCA M ON(M.MACODIGO = PR.PRCODIGOMARCA)
LEFT JOIN GRUPO G ON(G.GRCODIGO = PR.PRCODIGOGRUPO)
;
bom.
Quando preciso fazer uma pesquisa, demora pouco, tá aceitavel, tipo, 2 segundos eu ja tenho o resultado.
so que:
tenho uma tabela de Ofertas.
Campos,
CodigoOferta, CodigoProduto, Preco, ItemSimilar.
ae, montei o codigo.
SELECT OD.*,
PR.PSDESCRICAO,
PR.PSAPLICACAO,
PR.PSSIMILAR
FROM OFDETALHE OD
LEFT JOIN TODOSPRODUTOS PR ON(PR.PSCODIGO = OD.ODPRCODIGO AND PR.PSSIMILAR = OD.ODPRSIMILAR)
WHERE
OD.ODCODIGO = :OF
Cara, esse select demora uns 10 segundos pra responder, retornando apenas 20 itens.
quando preciso navegar pelo grid, demora demais para o ponteiro se mover.
Nao sei como resolver.
Alguma dica, alternativa, solucao.
Obrigado.
PS:
Lembrando.
Tenho uma tabela de produtos,
outra de produtos similares,
os campos sao identicos.
1 produto que tem em Tabela de Produtos tambem pode estar em Tabela de Produtos Similares.
Preciso Unir estas informacoes num select.
Quando preciso ver os itens de uma Oferta, que amarra os campos com Tabela de Produtos e Tabela de Produtos Similares, ae o bicho ta pegando..
Obrigado a todos.
Pedih
Curtidas 0
Respostas
Afarias
06/03/2005
poste aqui o PLAN de execução da consulta.
T+
T+
GOSTEI 0
Pedih
06/03/2005
poste aqui o PLAN de execução da consulta.
T+
Afarias, boa tarde.
Já resolvi.
Solucao: mudei completamente a estrutura do programa, criei uma tabela temporaria dos itens similares quando preciso fazer alguma alteracao, depois junto todos os itens novamente.
Ficou bom, o usuario nem percebe a transacao.
Mas obrigado pela atencao.
GOSTEI 0