我想從一個非常大的表(數百萬行)上的複雜查詢結果中選擇一些隨機行。使用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從非常大的表中選擇隨機行」 –