artigo sql magazine 48 - Explorando outras visões do banco de dados Oracle
Nesse artigo, vamos abordar outras visões do banco de dados Oracle que auxiliam na administração da carga e no desempenho de banco de dados.
Clique aqui para ler esse artigo em PDF.
Uma questão de visão – Parte 2
Explorando outras visões do banco de dados Oracle
No artigo anterior, vimos que através de consultas em visões do Oracle é possível obter diversas informações úteis ao gerenciamento como o tempo de execução de uma determinada declaração, os eventos de wait de uma sessão, as sessões que estão consumindo mais recursos, dentre outras. Nesse artigo, vamos abordar outras visões do banco de dados Oracle que auxiliam na administração da carga e no desempenho de banco de dados. As visões que serão exploradas são: V$SESSION_LONGOPS; V$FILESTAT; V$SORT_SEGMENT; V$SYSMETRIC; V$SYSTEM_WAIT_CLASS; V$SGA_DYNAMIC_COMPONENTS. Para cada uma das visões iremos mostrar declarações SQL que nos permitem obter as mesmas informações que teríamos de forma gráfica em outras ferramentas.
V$SESSION_LONGOPS
As operações que estiverem sendo executadas a mais de 6 segundos (esse tempo é padrão e não pode ser alterado) têm seu status registrado nessa view. Entre as operações passíveis desse registro, podemos citar: criação de índices, coleta de estatísticas, rotina de backup e recover, execução de consultas, e outras. Algumas observações precisam ser levadas em consideração para que essa view possa ser utilizada com sucesso: Utilizar o otimizador baseado em custo (CBO), que utiliza estatísticas de CPU; Confi gurar o parâmetro TIMED_STATISTICS para true usando o comando alter system set timed_statistics=true Coletar a estatística dos objetos utilizando o comando ANALYZE ou o pacote DBMS_STATS. O foco deste artigo não é demonstrar tal coleta. Existe um capítulo no manual do Oracle que detalha isso.
Listagem 1. Obtendo as Sessões que estão executando longas operações.
SELECT t1.SID, t1.serial#, t1.opname, t1.target, t1.sofar, t1.totalwork,
t1.start_time, t1.last_update_time, t2.last_call_et, t1.time_remaining,
t1.elapsed_seconds
FROM v$session_longops t1, v$session t2
WHERE t1.SID = t2.SID
AND t2.status = ‘ACTIVE’
AND t2.username NOT IN (‘SYS’, ‘SYSTEM’)
ORDER BY t2.last_call_et DESC;
Na Listagem 1 fazemos um Select de forma a obter todas as sessões que estejam sendo executadas há mais de 6 segundos, e selecionamos alguns dos campos desta visão. Na Listagem 1 estamos fazendo uma junção com a V$SESSION (mencionada no artigo anterior), filtrando apenas as sessões “ATIVAS” cujo usuário não seja o próprio Oracle (SYS,SYSTEM). A consulta retorna as respectivas sessões e o tempo estimado para conclusão (em segundos) na coluna TIME_REMAINING. A coluna TOTALWORK indica o valor total de blocos que serão processados. A coluna SOFAR retorna a quantidade referente à TOTALWORK que já foi processada." [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo