Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PauloTI

Performance/Oracle

Recommended Posts

Meu, alguém me consegue dar performance nesta query?


SELECT M.*

FROM PEDAGIO.TMVCCPD1 M

WHERE M.MVC_TIPLAN = 0 -- DEBITO

AND M.MVC_NUMFAT <> 0

AND M.MVC_DATA BETWEEN TO_DATE ('30/12/2012 15:00:17', 'DD/MM/YYYY HH24:MI:SS')

AND TO_DATE ('01/01/2013 13:00:17','DD/MM/YYYY HH24:MI:SS')

--AND M.MVC_CLIENTE = 289857

AND M.MVC_TIPO = 3 -- PASSAQEM

AND NOT EXISTS (

SELECT 1

FROM PEDAGIO.TFATPD03 IPAS , TFATPD01 H

WHERE IPAS.FAT3_CONTRATO = M.MVC_CONTRATO

AND IPAS.FAT3_NUMERO = M.MVC_NUMFAT

AND IPAS.FAT3_CODIGO = M.MVC_CODIGO

AND IPAS.FAT3_SEQ = M.MVC_SEQ

AND IPAS.FAT3_VALPAS = M.MVC_VALOR

AND H.FAT_NUMERO = IPAS.FAT3_NUMERO

AND H.FAT_CLIENTE = M.MVC_CLIENTE);



valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns programas como o SqlDeveloper já tem a chamada do Explain Plain.

Via SqlPlus basta seguir alguns passos.

A otimização depende de uma série de fatores, tipo se as estatísticas estão recentes, volume de dados, índices etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns programas como o SqlDeveloper já tem a chamada do Explain Plain.

Via SqlPlus basta seguir alguns passos.

A otimização depende de uma série de fatores, tipo se as estatísticas estão recentes, volume de dados, índices etc.

 

 

Pois então motta aqui no trabalho só disponibilizado o "Toad" e eu já estou usando INDEX.. mas meu.. da 36 minutos com a query rodando.. e simplesmente mostra está seguinte mensagem...

 

" ORA-01652: não é possível estender o segmento temp. em 128 no tablespace TS_TEMP "

 

Alguma ideia Help... ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Toad deve ter a opção de mostrar o plano de execução.

O 1º passo é ver se a query pode ser melhorada, não é muito simples mas também não é o fim-do-mundo.

Sabe se as estatísticas estão atualizadas ?

A table space TEMP pode estar mal configurada, tendo um serviço de DBA peça a ele para rever esta configuração.

--

Mas existem queries que face o negócio,volume etc são realmente demoradas, existem estratégias para tratar estas queries

como gerar tabelas consolidadas, views materializadas etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Toad deve ter a opção de mostrar o plano de execução.

O 1º passo é ver se a query pode ser melhorada, não é muito simples mas também não é o fim-do-mundo.

Sabe se as estatísticas estão atualizadas ?

A table space TEMP pode estar mal configurada, tendo um serviço de DBA peça a ele para rever esta configuração.

--

Mas existem queries que face o negócio,volume etc são realmente demoradas, existem estratégias para tratar estas queries

como gerar tabelas consolidadas, views materializadas etc.

 

 

 

Obrigado motta.. fui pela linha de melhorar a Query..

 

Apenas fiz a seguinte alteração

 

 

SELECT M.*
FROM PEDAGIO.TMVCCPD1 M ( e a coloquei aqui ) (TFATPD01 H)
WHERE M.MVC_TIPLAN = 0 -- DEBITO
e adicionei o JOIN AQUI ( AND H.FAT_CLIENTE = M.MVC_CLIENTE )
AND M.MVC_NUMFAT <> 0
AND M.MVC_DATA BETWEEN TO_DATE ('30/12/2012 15:00:17', 'DD/MM/YYYY HH24:MI:SS')
AND TO_DATE ('01/01/2013 13:00:17','DD/MM/YYYY HH24:MI:SS')
--AND M.MVC_CLIENTE = 289857
AND M.MVC_TIPO = 3 -- PASSAQEM
AND NOT EXISTS (
SELECT 1
FROM PEDAGIO.TFATPD03 IPAS , (TFATPD01 H) retirei está tabela daqui..
WHERE IPAS.FAT3_CONTRATO = M.MVC_CONTRATO
AND IPAS.FAT3_NUMERO = M.MVC_NUMFAT
AND IPAS.FAT3_CODIGO = M.MVC_CODIGO
AND IPAS.FAT3_SEQ = M.MVC_SEQ
AND IPAS.FAT3_VALPAS = M.MVC_VALOR
AND H.FAT_NUMERO = IPAS.FAT3_NUMERO
AND H.FAT_CLIENTE = M.MVC_CLIENTE); ( retirei este JOIN daqui )
Ele ficou da seguinte forma..
SELECT M.*
FROM PEDAGIO.TMVCCPD1 M, TFATPD01 H
WHERE M.MVC_TIPLAN = 0 -- DEBITO
AND H.FAT_CLIENTE = M.MVC_CLIENTE
--AND M.MVC_NUMFAT <> 0
AND M.MVC_TIPO = 3 -- PASSAQEM
AND ROWNUM < 100000
AND NOT EXISTS (
SELECT 1
FROM PEDAGIO.TFATPD03 IPAS
WHERE IPAS.FAT3_CONTRATO = M.MVC_CONTRATO
AND IPAS.FAT3_NUMERO = M.MVC_NUMFAT
AND IPAS.FAT3_CODIGO = M.MVC_CODIGO
AND IPAS.FAT3_SEQ = M.MVC_SEQ
AND IPAS.FAT3_VALPAS = M.MVC_VALOR
AND H.FAT_NUMERO = IPAS.FAT3_NUMERO);
porém o erro de " ORA-01652: não é possível estender o segmento temp. em 128 no tablespace TS_TEMP "
Continua.. porém isso só se resolve com um DBA segundo amigos meus Analistas de Sistema..
Obrigado pelo Suporte motta.
att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

porém o erro de " ORA-01652: não é possível estender o segmento temp. em 128 no tablespace TS_TEMP "
Continua.. porém isso só se resolve com um DBA segundo amigos meus Analistas de Sistema..

 

Vc pode extender o tamanho da TS por ALTER ou pelo TOAD mesmo (creio), basta ter os grants devidos, mas estas configurações devem ser feitas por alguém experiente.

Trabalhando à noite e tomando um erro destes a gente joga a Ts para unlimited e manda um email para o DBA ver no dia seguinte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vc pode extender o tamanho da TS por ALTER ou pelo TOAD mesmo (creio), basta ter os grants devidos, mas estas configurações devem ser feitas por alguém experiente.

Trabalhando à noite e tomando um erro destes a gente joga a Ts para unlimited e manda um email para o DBA ver no dia seguinte.

 

 

Haa Motta.. quem dera que tivesse um mundo perfeito aqui viu, é a base de dados do caras/cliente, então a gente tem que se virar com o que que tem, até o nosso DBA replicar o banco deles.. e pra piorar, o nosso DBA é " DBA DE SERVER " e ta meio que forçando a aprendizagem do Oracle, fazendo cursos e tentando aprender com uma DBA oracle aqui.. Projeto aqui ta o bicho MOTTA KKKK..

 

Enfim.. valeu pela ajuda novamente.

 

att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.