PERFORMANCE Sql no Oracle

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
crisck
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 07 Fev 2008 4:44 pm
Localização: Campo Grande - MS

Gostaria de saber se alguém conhece algum software que retorne o tempo gasto para realizar determinada consulta.
Por exemplo, tenho a consulta A e a consulta B, gostaria de saber qual das duas é mais rapida.
Para isso preciso saber o tempo gasto pela consulta A e pela consulta B.
Como faco isso??
Grato
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

o sql navigator diz a hora que se inicia e que termina a query
dai e so rodar uma de cada vez e fazer as contas

o plsql developer informa o tempo gasto na execução da query dai e so rodar uma de cada vez

e tenho quase certeza que o sql developer tambem faz isso

dica: pegue o tempo por amostragem, rode pelo menos 5 vezes a query e faça a média para ter um tempo de execução "mais real"
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Contar o tempo nem sempre mostra uma informação real. Exemplo:
* Você roda uma consulta que demora 1 minuto pra terminar. Depois, roda denovo e a mesma consulta leva 1 segundo. Isso porque todas linhas estão nos buffers e não é necessário consultar tudo denovo nos discos.

Por isso o ideal é consultar o plano de execução E coisas distintas. (eu sei que tem uma forma de limpar os buffers, o ideal é limpar antes de fazer esses testes)
crisck
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 07 Fev 2008 4:44 pm
Localização: Campo Grande - MS

então.. meu problema justamente é saber quanto custa um sql.
por exemplo: dependentes de um funcionario
PRIMEIRO)
Select *
from funcionario f, dependente d
where f.id = d.id_funcionario
SEGUNDO)
Select *
from funcionario f
join dependente d on (f.id = d.id_funcionario)

então, tenho duas querys de exemplo, qual delas é mais rapida??? e se trocassemos a ordem das entidades na clausula from do PRIMEIRO, haveria alteracao na performance?
Se invertessemos o join no SEGUNDO, melhoraria em algo??
Essas duvidas estao me tirando o sono....
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Pra saber o custo da consulta, existem duas formas (q eu conheça):

1) Através da geração de Trace/Tkprof da consulta (informe-se com um DBA para realização do processo/suporte);
2) Através de ferramentas visuais, como o Explain Plan do SQL Navigator;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes