Sql server 随机选择约1亿行数十亿

Sql server 随机选择约1亿行数十亿,sql-server,sas-jmp,Sql Server,Sas Jmp,我有点计算受限,因为我不想在几个小时的工作中破坏数据库或带宽 我当前的查询如下: SELECT TOP (100000000) mycolumns FROM mydb WHERE lower_control_limit> value1 AND upper_control_limit < value2 ; 选择顶部(100000000)菌柱 来自mydb 其中,控制下限>值1 控制上限

我有点计算受限,因为我不想在几个小时的工作中破坏数据库或带宽

我当前的查询如下:

SELECT TOP (100000000) mycolumns
FROM mydb
WHERE lower_control_limit> value1
    AND upper_control_limit < value2 ;
选择顶部(100000000)菌柱
来自mydb
其中,控制下限>值1
控制上限<值2;
我没有得到一个像样的随机样本,但我害怕在返回值之前,将必须遍历数十亿行的命令放入其中。我需要一个统一的随机样本在域(行)

从一个几十亿行大小的商店中抽取几亿行的“最佳实践”是什么

我见过随机的,但我只是担心查询的大小与有限的计算和带宽资源

找到了这个:


如果你为了限制你的样本而移除了过滤器,它在几分钟内不会返回结果吗?我想这并不是一个真正的“样本”。淹没了我工作站的整个内存,然后它冻结了。拉它大约需要半个小时。我最终不得不终止这个过程。你是在把这个推给SSMS吗?您是从另一台机器上运行查询吗?我正在通过SQL连接器从JMP运行数据库连接到远程数据库。我正在使用“高级”选项卡执行手动键入的查询。好的,将结果“下载”到您的计算机并让JMP处理它需要时间。结果的大小受计算机内存大小的限制。就带宽而言,我认为你所做的一切似乎都很好。您可以让DBA将查询写入CSV文件并压缩,然后通过电子邮件发送。我会尝试,但如果它运行一个小时或更长时间,我将不得不停止该过程并尝试其他方法。这必须运行得更快。如果是这样,你需要找出瓶颈。是下载还是JMP来处理它,这需要更长的时间。要找到答案,可以使用SSMS将查询导出到CSV,然后将其加载到JMP中。只需右键单击数据库并选择导出,然后选择平面文件。。。如果导出很快,那么您的瓶颈就是JMP。您可以在JMP中请求有关处理大型集合的帮助。或者找另一个工具,或者买一台更大的电脑…还有,确保你不使用WIFI,使用以太网。我有另一个查询,只是在计算行数。。。这也需要一些时间。它将返回一些单元格,但是。。。花了一个多小时。这是SQL存储—不是电线,不是我的工作站。我确实喜欢一个更好的工作站的想法。(Muahahaha)开始数行花了很长时间(约40分钟),但现在它正在移动。数据传输速率与上次运行一致。
 SELECT TOP (100000000) mycolumns
 FROM mydb order by newid()