我有一个表格,其中包含必须随机化的数据。通过随机化,我的意思是使用随机行中的数据来更新同一列中的另一行。问题是表本身很大(超过 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)
where pkID
是您的主键列。
这篇文章可能会让人感兴趣:
- 随机化数据 http://web.archive.org/web/20130122041626/http://msmvps.com/blogs/robfarley/archive/2009/12/07/randomising-data.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)