Select demorado
iai galera blz...
estou com um problema em um select quando executo esse select
select ITENS_TAB_PRECO.COD_PRODUTO,
PRODUTOS_ACABADOS.DESCRICAO,
ITENS_TAB_PRECO.PRECO_VENDA,
ITENS_TAB_PRECO.DESCONTO,
ITENS_TAB_PRECO.DESCONTO_MAX_GERENTE,
ITENS_TAB_PRECO.DESCONTO_MAX_VEND,
ITENS_TAB_PRECO.CODIGO
from PRODUTOS_ACABADOS
left OUTER JOIN itens_tab_preco ON
(PRODUTOS_ACABADOS.CODEMP = 1) AND
(ITENS_TAB_PRECO.cod_produto = PRODUTOS_ACABADOS.codigo)
where ( ITENS_TAB_PRECO.CODEMP = 1 ) AND
( ITENS_TAB_PRECO.cod_tab = :COD )
sai blz.... super rapido mas quando coloco
order by PRODUTOS_ACABADOS.DESCRICAO
ai esse mesmo select demora até 3 segundos o que pode ser ???
onde estou errando ??? declarei indices acendi velas dancei a dança da chuva e nada alguem poderia me ajudar ??
estou com um problema em um select quando executo esse select
select ITENS_TAB_PRECO.COD_PRODUTO,
PRODUTOS_ACABADOS.DESCRICAO,
ITENS_TAB_PRECO.PRECO_VENDA,
ITENS_TAB_PRECO.DESCONTO,
ITENS_TAB_PRECO.DESCONTO_MAX_GERENTE,
ITENS_TAB_PRECO.DESCONTO_MAX_VEND,
ITENS_TAB_PRECO.CODIGO
from PRODUTOS_ACABADOS
left OUTER JOIN itens_tab_preco ON
(PRODUTOS_ACABADOS.CODEMP = 1) AND
(ITENS_TAB_PRECO.cod_produto = PRODUTOS_ACABADOS.codigo)
where ( ITENS_TAB_PRECO.CODEMP = 1 ) AND
( ITENS_TAB_PRECO.cod_tab = :COD )
sai blz.... super rapido mas quando coloco
order by PRODUTOS_ACABADOS.DESCRICAO
ai esse mesmo select demora até 3 segundos o que pode ser ???
onde estou errando ??? declarei indices acendi velas dancei a dança da chuva e nada alguem poderia me ajudar ??
Juniorcesar
Curtidas 0
Respostas
Rafael Santana
18/07/2005
ao invés de colocar o nome do campo, no order by, colo o número referencial...ficaria assim
order by 2
order by 2
GOSTEI 0
Sremulador
18/07/2005
bem outro problema pode ser este de left outer join pois dependendo das condições da tabela pesquisada ele pode levar uma eternidade...
GOSTEI 0
Afarias
18/07/2005
ORDER BY podem ser lentos realmente, quando isto ocorre, pode ser mais vantajoso fazer a ordenação no cliente.
T+
T+
GOSTEI 0
Juniorcesar
18/07/2005
ORDER BY podem ser lentos realmente, quando isto ocorre, pode ser mais vantajoso fazer a ordenação no cliente.
T+
como assim ??
pode ser mais vantajoso fazer a ordenação no cliente.
como poderia fazer isso ??
GOSTEI 0
Afarias
18/07/2005
|pode ser mais vantajoso fazer a ordenação no cliente.
|como poderia fazer isso ??
Após recuperar os registros no cliente, vc pode ordená-los como desejar, isso pode ser em muitos casos mais eficiente que usar o servidor para fazer a ordenação.
Qualquer DataSet de memória faz ordenação de registros (a qualquer momento e por qualquer campo) com alta eficiência.
´Infelizmente´ alguns DataSets não possuem capacidade de ordenação do buffer (como é o caso do IBX) mas vc pode usar um ClientDataSet ou outra tabela de memória para isso.
T+
|como poderia fazer isso ??
Após recuperar os registros no cliente, vc pode ordená-los como desejar, isso pode ser em muitos casos mais eficiente que usar o servidor para fazer a ordenação.
Qualquer DataSet de memória faz ordenação de registros (a qualquer momento e por qualquer campo) com alta eficiência.
´Infelizmente´ alguns DataSets não possuem capacidade de ordenação do buffer (como é o caso do IBX) mas vc pode usar um ClientDataSet ou outra tabela de memória para isso.
T+
GOSTEI 0