我有很多数据需要根据一些简单的标准进行配对。有一个时间窗口(两条记录都有一个 DateTime 列),如果一条记录在时间上(5 秒内)非常接近另一条记录,则它是潜在匹配,时间最接近的记录被认为是完全匹配。还有其他领域也有助于缩小范围。
我编写了一个存储过程,它在将完整匹配的数据集返回到 C# 应用程序之前在服务器上执行此匹配。我的问题是,将 100 万 (x2) 行拉入并在 C# 中处理它们会更好,还是 sql server 更适合执行这种匹配?如果 Sql server 是,那么使用 datetime 字段配对数据的最快方法是什么?
现在我将表 1/表 2 中的所有记录选择到临时表中,遍历表 1 中的每条记录,在表 2 中查找匹配项并将匹配项(如果存在)存储在临时表中,然后删除两条记录在他们自己的临时表中。
我不得不为我正在写的游戏匆忙写这篇文章,所以请原谅糟糕的(非常糟糕的)程序......它有效,它只是非常低效!整个 SP 可在 pastebin 上找到:http: //pastebin.com/qaieDsW7
我知道 SP 写得不好,所以说“嘿,笨蛋……写得更好”没有帮助!我正在寻求改进它的帮助,或者关于我应该如何以不同的方式做整个事情的帮助/建议!我有大约 3/5 天的时间来重写它,我可以将截止日期推迟一点,但如果你们能及时帮助我,我宁愿不要!:)
谢谢!