1
2
根据我的经验,最快的方法是将二进制格式的数字打包成一个图像。我发送了多达10万个ID,效果很好: Mimicking a table variable parameter with an image 然而这是很久以前的事了。Erland Sommarskog的以下文章是最新的: |
2
1
如果ID列表位于另一个索引表中,则使用简单的
如果不可能,那么尝试创建一个表变量,如下所示
首先将ID存储在表变量中,然后
|
3
1
让我们考虑4个ID序列{ 2, 7 },{2,8},{1,2,7},和{1,2,8}。 它们转化为
获取和过滤ID 3-6的决定现在只取决于2和7/8之间的差异。但是,它不考虑2是否已经是范围或单个ID的一部分。
我认为正确的标准是你保存了多少个人ID。将两个人转换为一个范围将带来
|
4
0
添加重新编译不是一个好主意。预编译意味着sql不会保存查询结果,但会保存执行计划。从而使查询速度更快。如果添加“重新编译”,则它将始终具有编译查询的开销。尝试创建一个存储过程,保存查询并从那里调用它。因为存储过程总是预编译的。 |
5
0
另一个与Neils相似的肮脏想法,
|
6
0
有效的方法是:
这些步骤中的每一步都非常快,因为只传递一个字符串,循环期间不进行编译,并且除了实际的id值之外,不创建任何子字符串。 只要将大字符串作为参数传递,就不会执行任何重新编译。 请注意,在循环中,必须在两个单独的值中跟踪前一个逗号和当前逗号 |
7
0
即兴——合并派生表是否有助于提高性能?我并没有做好充分测试的准备,只是想知道这是否会优化到使用between,然后过滤掉不需要的行:
|
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
Prince · 复制大型文件需要更多时间 2 年前 |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |