• Markus (10/6/2015)


    That just might be it.... when I look at her SPID SQL it shows the select... hum....

    That would explain why I see her as a blocking thread to another update... and I kill her thread and the blocked thread then runs. But, it doesn't explain why updating one record would block updating a different record though.

    She's updating email address, probably a variable length character column.

    One theory is that this could potentially result in a page split, which require a lock held on any other record contained on that page for the duration of the transaction, which is all night long from what it sounds like.

    Another obscure and possibly relevant thing to consider (I vaguely recall this from one of Paul Randal's MCM training podcasts) is that when records are updated under snapshot isolation, SQL Server will actually add a version 14-byte stamp identifier to the record (if it hasn't already been added by snapshot row versioning previously). I'm not sure what side effect that potentially may cause, but perhaps page splits or even blocking, if the transaction is held open for an extended period of time. I mean, padding all versioned records with a 14-byte stamp has got to potentially have some negative impact on concurrency, even if the goal of versioning is better isolation.

    http://www.sqlskills.com/blogs/paul/inside-the-storage-engine-when-do-versioning-tags-get-added/

    Has anyone here actually experienced negative side effects of snapshot version stamping in the field?

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho