IdGenerator icon indicating copy to clipboard operation
IdGenerator copied to clipboard

少量并发时在SQLServer中Sql脚本可以使用ABS(CHECKSUM(NEWID()))替代RAND()

Open MrQLEO opened this issue 1 year ago • 1 comments

如果不记录Sequences的话,也可以使用 ABS(CHECKSUM(NEWID())) 来尽可能保证其随机性,当然这并不能保证不会重复。 在我机器上运行了sql脚本使用rand()的方式基本上20多条就会产生重复,使用ABS(CHECKSUM(NEWID()))的话测试了10W条未产生重复值,大概在50多w的时候发生了重复。 当然相比而言ABS(CHECKSUM(NEWID()))的生成速度要比rand()慢一些,本地循环生成10W条大概在5s左右

MrQLEO avatar May 21 '24 03:05 MrQLEO

方法不错,值得采纳。

yitter avatar Jan 19 '25 17:01 yitter