- Este tópico contém 11 respostas, 4 vozes e foi atualizado pela última vez 18 anos, 6 meses atrás por
rodasp.
-
AutorPosts
-
17 de agosto de 2007 às 5:37 pm #80261
souza
ParticipantePessoal como sou novato não sei para que serve exatamente e como faço para exeutar o “EXPLAIN PLAN”, mas pelo que entendi é o plano de execução , ou seja quando vc faz um insert numa tabela por exemplo o explain plan te mostra que caminho o “banco percorreu” para fazer isso.
Seria + ou – isso ?
17 de agosto de 2007 às 7:20 pm #80264Marcio68Almeida
ParticipanteÉ bem por ai mesmo, ele vai te mostrar quanto “custa” a consulta que você está fazendo, há várias informações relevantes, custo, cardinalidade, I/O, etc…
Coloque esta linha no SQLPlus antes da consulta propriamente dita :
set autot trace explain stat
Veja o que resulta…17 de agosto de 2007 às 9:30 pm #80265souza
ParticipanteEntão digito :
set autot trace explain stat
e logo após rodo minha consulta (por exemplo) e vai me retornar o “custo” disso para o banco ?
17 de agosto de 2007 às 9:44 pm #80266Marcio68Almeida
ParticipanteSim, faça isso para uma consulta qualquer do seu sistema e veja os resultados…
Mostra inclusive se há alguma consulta sem índice…17 de agosto de 2007 às 10:31 pm #80268souza
ParticipantePlano de Execução
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=28 Bytes=448)
1 0 TABLE ACCESS (FULL) OF ‘UF’ (Cost=3 Card=28 Bytes=448)Estatística
377 recursive calls 0 db block gets 119 consistent gets 24 physical reads 0 redo size 1176 bytes sent via SQL*Net to client 502 bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 6 sorts (memory) 0 sorts (disk) 28 rows processedTrouxe esses resultados.
Como posso detectar se há problemas e o que pode ser melhorado com os resultados !?
Outro dúvida, se eu quiser conceder privilégios para algum usuário comum fazer isso , qual grant devo conceder a ele ?
Obrigado
17 de agosto de 2007 às 10:48 pm #80269Marcio68Almeida
ParticipanteBom, creio que todos os usuário tem permissão de executar essa funcionalidade…
Sem muito esforço você vai encontrar alguns pontos cruciais na sua consulta…
1. Acesso full à tabela.
2. Muitas chamadas recursivas.
3. dependendo do tamanho da consulta, muitas leituas físicas…18 de agosto de 2007 às 12:05 am #80270souza
ParticipanteConsegui rodar apenas como system
19 de agosto de 2007 às 2:06 am #80271DanielB
Participantese debe crear y asignar el role plustrace
20 de agosto de 2007 às 4:47 pm #80278souza
ParticipanteApenas criar uma role “plustrace” , não preciso dar grants para ela ?
21 de agosto de 2007 às 5:46 am #80284DanielB
Participanteexiste un script de la instalacion de la base de datos que lo crea
no recuerdo lleve algun permiso especial21 de agosto de 2007 às 4:20 pm #80289souza
ParticipanteConsegui rodando o seguinte scripts
$ORACLE_HOME/sqlplus/admin/plustrace.sql que contém basicamente o conteúdo abaixo.
drop role plustrace;
create role plustrace;grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;
grant plustrace to dba with admin option;Obrigado pelo mão pessoal
19 de setembro de 2007 às 7:06 pm #80474rodasp
ParticipanteVc pode usar o aplicativo de gerencia da ORACLE “Top Sessions” que nele vc pode visualizar o palno de execução perfeitamente.
-
AutorPosts
- Você deve fazer login para responder a este tópico.