|
1
1
您可以生成SQL,例如
在循环中重复使用它,直到你加载了所有你需要的ID。优点是,如果您只需要几个id,那么DB就不需要解析所有in子句。如果许多ID是一个罕见的情况,那么性能的影响可能并不重要。如果您不担心SQL解析缓存,那么可以将in子句的大小限制为DB的实际限制,这样有时就不需要循环,有时就需要循环。 |
|
|
2
2
如果使用SQLServer2008,最快的方法通常是使用 Table-Valued Parameter (电视节目):
使用ADO.NET,您可以填充TVP
directly from your code
,所以不需要生成所有这些
... 把车开进去就行了
|
|
|
3
0
因为你必须通过身份证,以某种方式,应该是最快的方式。
如果您真的超过了IN的限制并创建了一个临时表,那么只要您一次插入值(当然不是数千个查询),表的创建就不会是一个大问题。选择开销最小的方法,如下面提到的方法之一: 当然,如果您的id中有一些静态模式,您可以通过它来选择(比如在SPs或udf中)。如果你从你的数据库中取出成千上万的ID,而不是来回传递它们,你可以存储它们或者使用子查询。。。 |
|
|
4
0
也许您可以将客户代码传递给以逗号分隔的存储过程,并使用此处提到的split sql函数: http://www.devx.com/tips/Tip/20009 .
|
|
|
optimusfrenk · GUID算法如何处理“时钟序列”? 8 年前 |
|
|
Cowsay · 如何在没有助手方法的情况下实现这个foldl0函数? 8 年前 |
|
|
Michael J · 使用不同的实现文件来实现多态性可以吗? 10 年前 |
|
|
Adi Micutzu · 使用什么方法在多台PC上分发算法? 10 年前 |
|
|
Veneet Reddy · 为什么我的快速排序实现不起作用? 10 年前 |
|
|
user3326689 · 在头文件c++[closed]中使用结构 11 年前 |