我想从一个非常大的表(数百万行)上的复杂查询结果中选择一些随机行。使用LINQ(ala TABLESAMPLE)从大型结果集中有效地选择随机行
我正在使用SQL Server 2008,正确的方法有效地做到这一点似乎是TABLESAMPLE子句。注意1:我对流行的“NEWID(order by order by NEWID)”解决方案不感兴趣 - 对于大型表格来说效率不高。注意2:由于我的查询很复杂,如果可能的话,我不想先计算COUNT。注意3:由于结果集很大,我不想自己遍历它,比如建议的here。
踢球者是我使用LINQ。具体来说,LINQ-To-Entities。
是否有LINQ友好的方式来使用TABLESAMPLE?
即使没有直接的支持,有没有什么方法可以在LINQ中编写我的大部分查询,然后执行少量的手动SQL来执行TABLESAMPLE?
请注意,TABLESAMPLE不会给你一个真正的随机样本。 –
@Mitch - 采取的点。在这种情况下,确切的分布对我来说并不重要,只要它有点分散。 – jwd
+1。有趣的问题。也许将标题改为“使用LINQ从非常大的表中选择随机行” –