Página 1 de 1

PERFORMANCE Sql no Oracle

Enviado: Qui, 07 Fev 2008 4:46 pm
por crisck
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

Enviado: Qui, 07 Fev 2008 5:00 pm
por victorhugomuniz
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"

Enviado: Sex, 08 Fev 2008 7:54 am
por dr_gori
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)

exemplo do problema com performance de querys

Enviado: Sex, 08 Fev 2008 10:57 am
por crisck
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....

Enviado: Sex, 08 Fev 2008 11:37 am
por Trevisolli
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;