Pular para o conteúdo

Fóruns Banco de dados Oracle Lockar Linha, tem como?? Lockar Linha, tem como??

#94842
vieri
Participante

    Li por alto novamente todas as postagens
    e em dado momento vc diz que a origem dos problemas
    é que aplicação fica bloqueada e não cosneguem identificar a
    causa real do problema correto?!
    No momento do problema tente responder esses questionamentos abaixo e poderá esclarecer as coisas.

    1)Quem está bloqueando quem ?
    2)Qual objetos é disputado pelas sessões ?
    3)Qual linha da tabela está obstruida ?
    4) O que o usuário está rodando?
    Respostas.

    1)

    •SELECT substr(DECODE(request,0,’Holder: ‘,’Waiter: ‘)||sid,1,12) sess,
    id1, id2, lmode, request, type, inst_id
    FROM GV$LOCK
    WHERE (id1, id2, type) IN
    (SELECT id1, id2, type FROM GV$LOCK WHERE request>0)
    ORDER BY id1, request;

    2)

    •select do.owner
    , do.object_name
    , row_wait_obj#
    , row_wait_file#
    , row_wait_block#
    , row_wait_row#
    , dbms_rowid.rowid_create (1, ROW_WAIT_OBJ#, ROW_WAIT_FILE#,
    ROW_WAIT_BLOCK#, ROW_WAIT_ROW#)
    from gv$session s
    , dba_objects do
    where sid= SID – Waiter da query 1
    and s.ROW_WAIT_OBJ# = do.OBJECT_ID
    /
    3)

    •select * from owner.table where
    rowid = rowid – obtido na query 2 ;
    — está query só funciona no momento da contenção

    4)
    Select * from v$open_cursor where sid = ‘Coleaquiodisbloqueadonaprimeiraconsulta’

    😯

    se for só isso… o Brasil goleia o chile hoje!! rsrs 😯