Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将列表从Java(使用JDBC)传递到Microsoft SQL Server的最佳方法_Java_Sql Server - Fatal编程技术网

将列表从Java(使用JDBC)传递到Microsoft SQL Server的最佳方法

将列表从Java(使用JDBC)传递到Microsoft SQL Server的最佳方法,java,sql-server,Java,Sql Server,我读过一些方法,但想知道是否有人真的看到了性能上的差异,或者知道其他方法。我看到的两种方式是 1) Java以字符串的形式发送逗号或空格分隔的值列表,sql server会解析这些值(也可以使用xml)。i、 e'1,2,3' 2) 批处理将值插入到具有值集ID的sql server表中,然后运行与表中的值一起工作的sql查询。如果有人好奇,这是我的测试用例中迄今为止最好的。对于大量(>100万)插入,大约比jdbc批量插入快5倍 比一次插入一条记录快15倍左右。免责声明:我的性能测试并不严格。

我读过一些方法,但想知道是否有人真的看到了性能上的差异,或者知道其他方法。我看到的两种方式是

1) Java以字符串的形式发送逗号或空格分隔的值列表,sql server会解析这些值(也可以使用xml)。i、 e'1,2,3'


2) 批处理将值插入到具有值集ID的sql server表中,然后运行与表中的值一起工作的sql查询。

如果有人好奇,这是我的测试用例中迄今为止最好的。对于大量(>100万)插入,大约比jdbc批量插入快5倍


比一次插入一条记录快15倍左右。免责声明:我的性能测试并不严格。

如果有人好奇,这是目前为止我测试用例中最好的。对于大量(>100万)插入,大约比jdbc批量插入快5倍


比一次插入一条记录快15倍左右。免责声明:我的性能测试并不严格。

如果可能,最好发送一个表值参数,而不是分隔字符串。如果您必须发送一个分隔字符串,那么您必须在sql端拆分它,这不是最优的。下面是一篇讨论拆分器并提供一些示例的文章。如果可能,最好是发送一个表值参数,而不是分隔字符串。如果您必须发送一个分隔字符串,那么您必须在sql端拆分它,这不是最优的。下面是一篇讨论拆分器并提供一些示例的文章。