Mil*_*had 4 sql sql-server random
我有一个表格,里面有我必须随机化的数据。通过随机化,我的意思是使用来自随机行的数据来更新同一列中的另一行。问题是表本身很大(超过 2 000 000 行)。
我写了一段使用while循环的代码,但速度很慢。
有没有人对实现随机化的更有效方法有任何建议?
为了更新行,更新需要大量的处理时间(CPU + I/O)。
您是否测量过随机化行与执行更新的相对开销?
您需要做的就是选择随机行,这是一种选择随机行样本的有效方法(在本例中为 1% 的行)
SELECT * FROM myTable
WHERE 0.01 >= CAST(CHECKSUM(NEWID(), pkID) & 0x7fffffff AS float) / CAST (0x7fffffff AS int)
Run Code Online (Sandbox Code Playgroud)
pkID你的主键列在哪里。
这篇文章可能很有趣: