An alternative to GUIDs

  • Thanks for taking the time to reply StuR. It does help although I did mostly understand those issues already. Difficulty I have as a developer is that (and someone already alluded to - or just plain stated - this already) I am constantly coming up against solutions that folk have created in isolation of all other aspects of a system. Often these are just sheer tunnel vision but many times are driven by shortsightedness on the part of management.

  • Maybe you are interested how to generate sequential guids on the client, as well as other answers/discussions regarding Guids:

    Generate Sequential Guids

    I hope this is interesting for you.

    Kind regards,

    Bernhard Kircher

  • Went to an astonishing presentation by Thomas Kejser at SQL Bits where he demonstrated that IDENTITY and in fact NEWSEQUENTIALID() is far slower that GUIDs on SSDs and this is exacerbated by NUMA architecture.

    The gist of it is that SQL Server has to keep track of where a sequential range is and this means marshalling across all parallelised resources which is very expensive. It is also has something to do with the tail of an index page being used.

    Unfortunately the acoustics in hall were poor so if any of you attended his session then please fill in the blanks.

    Keep an eye out for his presentation on the SQLBits website http://sqlbits.com/Sessions/Event9/Finding_the_Limits. The presentation isn't there yet but will be uploaded soon.

    For those of you who haven't seen one of Thomas's presentations, he works at the extreme end of SQL Server performance and storage. What most people probably regard as science fiction!

    24TB cube with 1,000 concurrent users and sub-second response times.

  • David.Poole (10/5/2011)


    Went to an astonishing presentation by Thomas Kejser at SQL Bits where he demonstrated that IDENTITY and in fact NEWSEQUENTIALID() is far slower that GUIDs on SSDs and this is exacerbated by NUMA architecture.

    I think you are referring to http://blog.kejser.org/2011/10/05/boosting-insert-speed-by-generating-scalable-keys/ which is itself an update to http://sqlcat.com/sqlcat/b/technicalnotes/archive/2009/09/22/resolving-pagelatch-contention-on-highly-concurrent-insert-workloads-part-1.aspx.

    It's quite wrong to suggest that IDENTITY or NEWSEQUENTIALID 'are slower' than GUIDs without mentioning that this is only important in the most extreme of circumstances. For the 99.9999% of us who aren't bound by latch contention on the last page of an index on extreme Fusion-IO hardware, other more normal factors such as page splits and non-INSERT performance are likely to be much more of interest than esoteric page latch or sub-latch issues. That's not to take anything away from Thomas' great work here - but it is important to retain a sensible perspective when considering his results.

Viewing 4 posts - 61 through 63 (of 63 total)

You must be logged in to reply to this topic. Login to reply