基于值列表查询数据库的最有效方法是什么?

Mic*_*cah 1 t-sql sql-server-2008

我有一个记录ID的列表,我想从Sql Server检索.我正在试图弄清楚这样做最有效的方式.例如在代码中我有这个:

var recordsToFind = new List<long>{ 12345, 12346, 45756, 42423 ... }
Run Code Online (Sandbox Code Playgroud)

我想创建一个执行此操作的存储过程:

Select * From Puzzles where ID = {any of the integers passed in}
Run Code Online (Sandbox Code Playgroud)

我知道有几个选项,如表值参数,将列表转换为逗号分隔字符串并使用CharIndex,创建临时表并拆分字符串等...

什么是最好的方法,记住这将被使用很多!

谢谢!

SQL*_*ace 5

有几个必须阅读的文章可以在这里找到:http://www.sommarskog.se/arrays-in-sql.html 性能考虑在这些文章中得到解决.