P>

Capa SQl 33

Clique aqui para ler todos os artigos desta edição

 

 

Mão na Massa – Oracle Situações do Cotidiano de seu Banco de Dados

 

     Dando continuidade à coluna Mão na Massa, a SQL Magazine abre o espaço para que o leitor seja parte integrante. A idéia principal desta coluna é trazer até você situações reais e cotidianas de bases de dados que hoje estão em produção e, para chegarmos o mais perto possível deste cotidiano, nada melhor que responder a perguntas feitas pelos próprios leitores.

     Inicialmente, selecionamos algumas perguntas enviadas por vocês, leitores, à SQL Magazine e convidamos um especialista no assunto para solucionar a questão.

     Neste momento, contamos com a colaboração de Rodrigo Righetti, DBA especialista em Oracle, que responderá às perguntas referentes a este SGBD.

     Num futuro muito breve, estenderemos esta coluna para abranger outras plataformas, como SQL Server, DB2, PostgreSQL, MySQL e o que mais for possível.

Quero apenas salientar que esta coluna só terá sucesso se você enviar suas dúvidas ou estudos de caso para que nosso especialista possa responder.

     Envie seus questionamentos para webeditor@sqlmagazine.com.br.

     Estou no aguardo.

     Ricardo Rezende

     Editor Técnico

 

Você perguntou!

    

     Olá especialista da SQL Magazine, Tenho algumas dúvidas a respeito de Locks.

Como utilizo a view V$LOCK para verificar detalhes sobre

um lock? Detalhes como quem gerou o lock, em qual tabela,

quem mais está esperando e qual o tipo de lock (compartilhado

ou exclusivo?), desde quando está em lock.

Porque e quando lock exclusivo/compartilhado são usados?

Poderia me dizer qual o significado das views V$MYSTAT e

V$LOCKED_OBJECT?

Existe no Oracle o lock em nível de página?

     Desde já agradeço a atenção.

     Célio Fernandes

 

E nós respondemos!

 

     Olá Célio.

     Obrigado por ajudar a SQL Magazine em mais esta coluna. Vamos às respostas de suas dúvidas.

     Você poderá utilizar a view V$LOCK de varias formas. Vou lhe dar alguns exemplos e ai fica a seu critério.

     Uma forma fácil de identificar bloqueadores, ou seja, quem esta causando o lock é utilizar a query da Listagem 1.

 

Listagem 1. Identificando os bloqueadores.

 

Select sid, serial#, username

     from v$session where sid in (select sid from v$lock where block=1);

 

Ou seja, toda sessão que tiver uma entrada em V$LOCK

e o campo block=1 significa que esta bloqueando outras

sessões.

Para descobrir sessões que estão esperando sem identificar

o bloqueador, você pode simplesmente executar a

query da Listagem 2.

 

Listagem 2. Identificando sessões em espera.

 

SELECT SID, SERIAL#, USERNAME

...

Quer ler esse conteúdo completo? Tenha acesso completo