如何高效实现批量插入数据,并去重
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何高效实现批量插入数据,并去重相关的知识,希望对你有一定的参考价值。
参考技术A c#,sqlserver。写一下我将前端获取到的缓存数据批量插入数据库的表。在sqlserver数据库下,展开(可编程性)-->(类型)-->(用户自定义表类型)。建一个自定义表类型,表类型结构即是前端传过来的表格数据结构。例如:
CREATE TYPE [dbo].[DT_SAP_ASN] AS TABLE(
[GUID] [nvarchar](50) NULL,
[VBELN_SIP] [nvarchar](30) NULL,
[POSNR_SIP] [nvarchar](30) NULL
)
GO
然后再写个存储,用于调用此存储批量将前端传入的datatable缓存数据批量插入数据库的某个表。例如:
CREATE PROC [dbo].[SP_EDI_SAP_ASN]
(
@DT_SAP_ASN DT_SAP_ASN READONLY --输入参数,刚刚自定义的表类型
)
AS
BEGIN
SET NOCOUNT OFF
INSERT INTO dbo.EDI_ASN_Log
( ID ,
GUID ,
VBELN_SIP ,
POSNR_SIP ,
)
SELECT NEWID() ,
GUID ,
VBELN_SIP ,
POSNR_SIP
FROM @DT_SAP_ASN
SET NOCOUNT ON
END
当然,去重的话在inset那边select表#DT_SAP_ASN distinct一下即可
js实现数组排序并去重
遍历数组
// 先实现冒泡排序, 后实现数组去重
function fn(arr){
for(var i=0; i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
for(var k=0;k<arr.length;k++){
var c = arr[k];
for(var l=k+1;l<arr.length;l++){
if(arr[l]==c){
arr.splice(l,1)
l--
}
}
}
return arr
}
var arr = [1,2,5,6,8,9,10,6,5,7,4,3,5]
console.log(fn(arr)) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Set(使成员是唯一且无序的值)
var arr = [1,2,5,6,8,9,10,6,5,7,4,3,5]
let c = [...new Set([...arr])].sort((a,b)=>{
return a-b
})
console.log(c) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
以上是关于如何高效实现批量插入数据,并去重的主要内容,如果未能解决你的问题,请参考以下文章
后端开发PreparedStatement的优点以及实现高效批量插入
后端开发PreparedStatement的优点以及实现高效批量插入
后端开发PreparedStatement的优点以及实现高效批量插入