• Thank you guys for your replies. We've modified the indexes, but we still get a similar error, though with less frequency.

    Here are the current indexes:

    ADD CONSTRAINT [PK_INFO_LOG] PRIMARY KEY CLUSTERED

    (

    [ID] ASC

    )

    CREATE UNIQUE NONCLUSTERED INDEX [IX_INFO_LOG] ON [dbo].[INFO_LOG]

    (

    [MSG_TYPE] ASC,

    [PCODE] ASC,

    [TRANS_DATE] ASC,

    [TRANS_TIME] ASC,

    [PROCESS_DATE] ASC,

    [ID_TERMINAL] ASC,

    [REFERENCE_NUMBER] ASC,

    [RESPONSE_CODE] ASC

    )

    This suggestion by SSCrazy also aided performance, so... great! thanks for that! 🙂 pitty I still can't get rid of that deadlock...

    The query plan shows that it first performs an index seek on IX_INFO_LOG, and then an update on PK_INFO_LOG. (attachment can be renamed to .sqlplan)

    The deadlock now occurs between two concurrent updating threads executing the same query as before, on object IX_INFO_LOG. this also can be seen on the attachment

    I'll give changing the isolation levels but first I'd like to find out why the deadlock occurs in the first place. You see, as we can only reproduce the deadlock once in a while (this one was after TX 300.000), it becomes very difficult to see if the problem would be really solved...

    I'm also attaching the new log.