Aaron Bertrand has a follow-up post on STRING_SPLIT():
So here, the JSON and
STRING_SPLIT
methods took about 10 seconds each, while the Numbers table, CLR, and XML approaches took less than a second. Perplexed, I investigated the waits, and sure enough, the four methods on the left incurred significantLATCH_EX
waits (about 25 seconds) not seen in the other three, and there were no other significant waits to speak of.And since the latch waits were greater than total duration, it gave me a clue that this had to do with parallelism (this particular machine has 4 cores). So I generated test code again, changing just one line to see what would happen without parallelism:
There’s a lot going on in that post, so I recommend checking it out.