SQL Server Performance
  1. estrellitapm2007 New Member

    Tengo una base de datos sql server enterprise 2000. Tenemos dos aplicacion en java que bota muchos deadlocks de esta base en los logs de java , muchas veces no pude ingresar datos a sql debido a esto. Habilite traceon(1204) para poder saber cuales son los eventos que estas en deadlock pero no se como interpretarlos por favor necesito ayuda para esto:<br /><br />Deadlock encountered .... Printing deadlock information<br />2007-02-27 17:14:12.89 spid4 <br />2007-02-27 17:14:12.89 spid4 Wait-for graph<br />2007-02-27 17:14:12.89 spid4 <br />2007-02-27 17:14:12.89 spid4 Node:1<br />2007-02-27 17:14:12.89 spid4 RID: 7:1:1402391:18 CleanCnt:1 Mode: X Flags: 0x2<br />2007-02-27 17:14:12.89 spid4 Grant List 1::<br />2007-02-27 17:14:12.89 spid4 Owner:0x49856700 Mode: X Flg:0x0 Ref:0 Life:02000000 SPID:62 ECID:0<br />2007-02-27 17:14:12.89 spid4 SPID: 62 ECID: 0 Statement Type: CONDITIONAL Line #: 10<br />2007-02-27 17:14:12.89 spid4 Input Buf: Language Event: INSERT INTO skypatrol (CUSTID, UNITID, MSGOUTNUMBER, PROCESSEDFLAG, RAWDATA) VALUES('P000000001', '094855921', '92120070227171326,499', '00', '2,ED,1,-0210.4875,-07954.4259,000000110000003104000000,3,1,40,070226220633,000.0,00023,000.0,1000000.000000,2584<br />2007-02-27 17:14:12.89 spid4 Requested By: <br />2007-02-27 17:14:12.89 spid4 ResType:LockOwner Stype:'OR' Mode: S SPID:56 ECID:0 Ec<img src='/community/emoticons/emotion-6.gif' alt=':(' />0x6117D50<img src='/community/emoticons/emotion-11.gif' alt='8)' /> Value:0x4d9213a0 Cost<img src='/community/emoticons/emotion-6.gif' alt=':(' />0/144)<br />2007-02-27 17:14:12.89 spid4 <br />2007-02-27 17:14:12.89 spid4 Node:2<br />2007-02-27 17:14:12.89 spid4 RID: 7:1:1402391:17 CleanCnt:1 Mode: X Flags: 0x2<br />2007-02-27 17:14:12.89 spid4 Grant List 2::<br />2007-02-27 17:14:12.89 spid4 Owner:0x4d921400 Mode: X Flg:0x0 Ref:0 Life:02000000 SPID:56 ECID:0<br />2007-02-27 17:14:12.89 spid4 SPID: 56 ECID: 0 Statement Type: SELECT Line #: 14<br />2007-02-27 17:14:12.89 spid4 Input Buf: Language Event: INSERT INTO skypatrol (CUSTID, UNITID, MSGOUTNUMBER, PROCESSEDFLAG, RAWDATA) VALUES('P000000001', '8357559', '55920070227171308,592', '00', '2,0,1,-0209.2704,-07953.4973,000000100000010106000040,3,1,TI,070227171112,000,00018,000.0,1000000.000000,153392709<br />2007-02-27 17:14:12.89 spid4 Requested By: <br />2007-02-27 17:14:12.89 spid4 ResType:LockOwner Stype:'OR' Mode: S SPID:62 ECID:0 Ec<img src='/community/emoticons/emotion-6.gif' alt=':(' />0x508FF500) Value:0x49856720 Cost<img src='/community/emoticons/emotion-6.gif' alt=':(' />0/14C)<br />2007-02-27 17:14:12.89 spid4 Victim Resource Owner:<br />2007-02-27 17:14:12.89 spid4 ResType:LockOwner Stype:'OR' Mode: S SPID:56 ECID:0 Ec<img src='/community/emoticons/emotion-6.gif' alt=':(' />0x6117D50<img src='/community/emoticons/emotion-11.gif' alt='8)' /> Value:0x4d9213a0 Cost<img src='/community/emoticons/emotion-6.gif' alt=':(' />0/144)<br />2007-02-27 17:15:15.39 spid4 <br /><br /><br />O con que herramienta puedo saber cuales son los procesos,eventos,usuarios sentecia sql que esta causando el deadlock.<br /><br />Saludos<br /><br />Estrella<br />
  2. Roji. P. Thomas New Member

    ¿Cuáles son los índices en el skypatrol de la tabla? ¿Tienes un “trigger” definido en esta tabla?


    Roji. P. Thomas
    SQL Server MVP
    http://toponewithties.blogspot.com
  3. estrellitapm2007 New Member

    No tiene indices pero si tiene el siguente trigger:

    CREATE TRIGGER [dbo].[tr_SkypatrolMsg] ON dbo.Skypatrol
    FOR INSERT, UPDATE
    AS
    IF ( (SELECT trigger_nestlevel(object_ID('tr_SkypatrolMsg') ) ) < 32 )
    begin
    DECLARE @UnitID VARCHAR(20)
    DECLARE @Rawdata VARCHAR(255)
    DECLARE @WholeMsg VARCHAR(300)

    if EXISTS (SELECT MsgOutNumber FROM Skypatrol WHERE ProcessedFlag =0)
    begin
    SET NOCOUNT ON
    SELECT @UnitID = (SELECT top 1 UnitID FROM Skypatrol where ProcessedFlag =0 order by MsgOutNumber)
    SELECT @Rawdata = (SELECT top 1 RawData FROM Skypatrol where ProcessedFlag =0 order by MsgOutNumber)

    set @WholeMsg = '@' + @UnitID + '*' + @Rawdata
    exec master..xp_msmq_send 'DIRECT=OS:.private$SkyPatrol_In', 'SkyPatrol Incoming Message', @WholeMsg
    update Skypatrol set ProcessedFlag=1 where MsgOutNumber = (SELECT top 1 MsgOutNumber FROM Skypatrol where ProcessedFlag =0 order by MsgOutNumber)
    end
    end


    Estrella
  4. Roji. P. Thomas New Member

  5. estrellitapm2007 New Member

    Y como puedo saber que es lo que esta causando los deadlocks. Que eventos hacen que pase esto con esta tabla
  6. Luis Martin Moderator

    La causa es que alguna consulta utiliza la tabla por completo sin utilizar los índices. De esa manera, hasta que la consulta no la libere, el resto de las consultas que quieran acceder no pueden dado a este bloqueo.

    Deberías ejecutar el Profiler para encontrar cuál es la consulta en cuestión, mirar su plan de ejecución y optimizarla agregándole índices.


    Luis Martin
    Moderator
    SQL-Server-Performance.com

    All in Love is Fair
    Stevie Wonder


    All postings are provided “AS IS” with no warranties for accuracy.



  7. Luis Martin Moderator

    Roji:

    Muchas gracias. Me resultaría muy bueno saber que puedo contar con tu ayuda y con tus conocimiento.

    Saludos,



    Luis Martin
    Moderator
    SQL-Server-Performance.com

    All in Love is Fair
    Stevie Wonder


    All postings are provided “AS IS” with no warranties for accuracy.



  8. estrellitapm2007 New Member

    Muchas gracias voy a crearlos y te cuento luego como me fue

Share This Page