いくつかの簡単な基準に基づいてペアリングする必要のあるデータがたくさんあります。時間枠があり(両方のレコードにDateTime列があります)、あるレコードが別のレコードに非常に近い場合(5秒以内)、一致する可能性があり、時間的に最も近いレコードは完全一致と見なされます。これを絞り込むのに役立つ他のフィールドもあります。
完全に一致したデータセットをC#アプリケーションに返す前に、サーバー上でこの一致を実行するストアドプロシージャを作成しました。私の質問は、100万(x2)行を取得してC#で処理する方がよいのでしょうか、それともSQLサーバーがこのマッチングを実行するのに適しているのでしょうか。SQLサーバーの場合、日時フィールドを使用してデータをペアリングする最速の方法は何ですか?
現在、表1 /表2からすべてのレコードを一時テーブルに選択し、表1の各レコードを反復処理して、表2で一致するものを探し、一致するもの(存在する場合)を一時テーブルに保存してから、両方のレコードを削除します。独自の一時テーブルで。
私が書いているゲームのためにこの作品を急がなければならなかったので、悪い(非常に悪い)手順を許してください...それはうまくいきます、それはひどく非効率的です!SP全体はpastebinで入手できます:http: //pastebin.com/qaieDsW7
SPの記述が不十分であることはわかっているので、「ねえ、ばかげた...もっと上手に書いてください」と言っても役に立ちません。私はそれを改善するための助けを探しています、または私が全体を違ったやり方で行うべき方法についての助け/アドバイスを探しています!私はそれを書き直すのに約3/5日あります、私はその締め切りを少し遅らせることができます、しかしあなたたちが時間内に私を助けることができれば私はむしろしたくありません!:)
ありがとう!