Alex, não uso NENHUMA das tools que vc cita (já que normalmente GUIs 
do tipo ESCONDEM o que estão fazendo no banco por trás da telinha, o 
que pra mim é um ENORME fator de complicação, as desprezo normalmente 
por isso) , mas quando duas ferramentas apresentam planos diferentes 
para exatamente o ** mesmo ** SQL, as possibilidades são :

 a) bug em alguma delas
 b) dados errôneos na tabela plan_table
 c) diferença devido à bind variables com valores diferentes (algumas 
tools, como o EXPLAIN PLAN, não registram bind peeking, outras 
mostram.
 
 
 Eu recomendaria que vc DESPREZASSE, ao menos no momento, essas 
GUIzinhas aí e fosse DIRETO à fonte da informação, ie, via SQL numa 
ferramenta TEXTO, acesse diretamente as views/tabelas/opções Oracle. 
A tool que recomendaria seria o sqlplus, e o procedimento seria algo 
tipo  : TRUNCAR a info hoje presente na plan_table, pedir pro usuário 
rodar novamente o programa que gera o SQL a analisar (que vc já sabe 
qual é, pelo jeito), extrair da V$SQL_PLAN  o plano real usado para a 
execução (em sendo 10gr2 vc deverá inclusive poder extrair os valores 
bind via pesquisa na v$sql_bind_capture), pedir um explain plan, em 
havendo diferença pode ser bind peeking entrando em ação, vc poderia 
pedir um trace+tkprof mostram os diferentes valores de binds usados. 
Isso seria os primeiros passos... Pra mais info sobre os pontos 
citados, recomendo a documentação de Tunning, inicialmente.
 
 []s
 
  Chiappa
  
--- Em [email protected], "Alex Fernando Kirsten" 
<[EMAIL PROTECTED]> escreveu
>
> Olá lista,
> 
> Estou tendo um problema de lentidão em um servidor (oracle 10gr2) e 
quando verifico no Enterprise Mangager, um SQL me apresenta um custo 
de 9881, e quando consulto no PL/SQL Developer, me apresenta um custo 
de 131, inclusive com um plano de execução diferente. Vejam (eliminei 
o nome da tabela e dos indices pra ter uma clareza melhor):
> 
> Plano de execução mostrado pelo enterprise manager (custo 9881):
> SELECT STATEMENT 
>    TABLE ACCESS BY INDEX ROWID     
>       INDEX FULL SCAN            INDEX (UNIQUE)
> 
> Plano de execução apresentado no pl/sql developer (custo 131):
> SELECT STATEMENT
>  SORT ORDER BY   
>   CONCATENATION     
>    TABLE ACCESS BY INDEX ROWID 
>     INDEX RANGE SCAN
>    TABLE ACCESS BY INDEX ROWID
>     INDEX RANGE SCAN 
>    TABLE ACCESS BY INDEX ROWID
>     INDEX RANGE SCAN 
>    TABLE ACCESS BY INDEX ROWID
>     INDEX RANGE SCAN 
>    TABLE ACCESS BY INDEX ROWID
>     INDEX RANGE SCAN 
> 
> A consulta é realizada em cima de uma unica tabela (não existem 
relacionamentos). Obviamente, ambos os planos foram obtidos com o 
mesmo sql. Alguém já passou por algum problema parecido? 
> 
> []'s
> 
> Alex Fernando Kirsten
> Oracle 9i Database Administrator Certified Professional
> Depto. de Tecnologia
> Operacional Têxtil
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a