LINQ 2 SQL を使用してテーブルからランダムな行を選択する最良の方法について疑問に思っていましたが、検索中に次の 2 つの質問が見つかりました。
しかし、msdn using NewID() is a bad way to select rows to random and on this article によると、これが最善かつ最速の方法だとは思いません:
http://msdn.microsoft.com/en-us/library/cc441928.aspx
彼らは、NewID メソッドよりも高速な別のクエリを提案しました。
SELECT * FROM Table1
WHERE (ABS(CAST(
(BINARY_CHECKSUM(*) *
RAND()) as int)) % 100) < 10
このクエリの背後にある基本的な考え方は、テーブルの各行に対して 0 から 99 までの乱数を生成し、乱数が指定されたパーセント値より小さい行をすべて選択するというものです。
しかし、LINQ を使用してこれを実行しようとすると、BINARY_CHECKSUM に相当するものが見つかりませんでした
LINQ の BINARY_CHECKSUM と同等ですか?
行をランダムに選択するのが本当に最速の方法ですか? (LINQコードに変換するのを手伝ってくれれば、もっと簡単になります)
ご協力いただきありがとうございます