Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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... ?
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.
>
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.
>
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.
>
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.
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.