Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >插入或更新方案中的Sql server批量插入/更新与合并

插入或更新方案中的Sql server批量插入/更新与合并
EN

Stack Overflow用户
提问于 2010-09-24 12:57:07
回答 2查看 16.5K关注 0票数 8

我需要找到最好的方式来插入或更新数据库中的数据使用sql server和asp.net。这是一个标准场景,如果数据存在,则会更新;如果不存在,则会插入数据。我知道这里有很多关于这方面的话题,但没有人回答我需要知道的问题。

所以我的问题是,当你更新/插入5k - 10k行时,确实没有问题,但是对于50k或更多的行,问题是什么。

我的第一个想法是使用sql server2008merge命令,但是如果它是50k+行,我有一些性能方面的考虑。此外,我不知道是否可以不基于主id键(int),而是基于表中的其他唯一键,以这种方式对数据进行marge。(准确地说,是不会随时间变化的产品序列号)。

我的第二个想法是首先获取所有产品序列,然后将新的数据序列与之进行比较,并将其分为要插入的数据和要更新的数据,然后只进行一次批量插入和一次批量更新。

我只是不知道哪一个会更好,我不知道合并的性能会是什么,它只有sql server 2008支持,但它看起来很简单,第二个选项不需要sql 2008,批处理应该是快的,但首先选择所有序列并根据它们进行划分可能会有一些性能损失。

你的观点是什么,选择什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-24 13:06:02

Merge的性能要好得多,因为“MERGE语句最重要的优点之一就是所有的数据只被读取和处理一次”

您不需要主键,您可以在一个或多个字段上进行连接,从而使您的记录具有唯一性

票数 5
EN

Stack Overflow用户

发布于 2010-09-24 13:05:30

在序列号上执行您所描述的合并应该没有问题。在使用MERGE时,您可能希望阅读Optimizing MERGE Statement Performance以了解微软推荐的最佳实践。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3787252

复制
相关文章
根据用户输入的行数,打印出相应行数的直角三角形
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>输出指定行数的* 形成直角三角形</title> </head> <body> <script> // 输出指定行数的* ,形成直角三角形 var row = prompt("请输入需要打印的行数"); for (var i = 1; i <= row; i++) { for (var j = 1; j <= i; j++) {
是阿超
2021/10/15
8530
JS根据列表排列对象数组
] const sortInfo = ['f','c','b'] nodeData_.sort((a, b) => {
小仙女闯运维
2020/09/23
4.5K0
根据rpt文件打印报表
不用一个个地导入rpt文件,再去写固定的代码,而是每次动态的根据指定的名称去加载报表和打印   if(Session["PrintXml"]!=null)    {     ReportDocument rd=new ReportDocument();     rd.Load (this.Server.MapPath("\\Flow\\FlowForm\\rpt")+"\\"+Session["PrintFormName"]+".rpt");     rd.SetDataSource(XmlPage.Get
用户1075292
2018/01/23
1.3K0
WEB打印-根据需求打印局部源码记录
这次的需求可能就比较简单了,就是实现web端的打印,但是是根据需求打印,而不是直接打印全部
何处锦绣不灰堆
2020/05/29
8500
WEB打印-根据需求打印局部源码记录
用户输入
大多数程序都在解决最终用户问题,为此通常需要从用户那里获取一些信息。在程序需要一个名字时,你需要提示用户输入该名字;程序需要一个名字时,你需要提示用户输入一系列名字。
狼啸风云
2019/01/18
9700
扫码打印新的实现方法(打印时输入)
打印时输入的是Label mx 条码软件的文字、条码、二维码共有属性,实现扫描一个条码,打印一个新标签,常用于重新贴码的包装箱或产品贴。下图为文字、条码、二维码的“打印时输入”属性设置:
用户6708611
2023/07/05
4680
扫码打印新的实现方法(打印时输入)
SAP 根据PO查找对应的打印FORM
正文部分 1、TCODE:NACE进入 找到 输出控制条件对应的应用程序名字,如下图: 2、选中应用程序后,点击上面菜单里的输出类型,如下图
matinal
2020/11/27
7620
Vue根据数据字段大小进行排列
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script type="text/javascript" src="http://cdn.suol
明知山
2020/09/03
8370
打印不重复的字符串全排列(递归)
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 
砖业洋__
2023/05/06
3970
打印不重复的字符串全排列(递归)
Dynamic ReLU:根据输入动态确定的ReLU
这是我最近才看到的一篇论文,它提出了动态ReLU (Dynamic ReLU, DY-ReLU),可以将全局上下文编码为超函数,并相应地调整分段线性激活函数。与传统的ReLU相比,DY-ReLU的额外计算成本可以忽略不计,但表示能力明显增强,并且实现简单,所以可以非常简单的对我们现有的模型进行修改。
deephub
2023/08/30
1850
Dynamic ReLU:根据输入动态确定的ReLU
java 输出字符串的所有排列_Java程序打印字符串的所有排列
static void print_permutations(String my_str,String my_ans){
用户7886150
2021/04/29
1.1K0
Angular 2 用户输入
等号左边的 (click) 表示把该按钮的点击事件作为绑定目标 。 等号右边,引号中的文本是一个 模板语句
陈不成i
2021/07/26
1.7K0
Python之用户输入
大多数程序都旨在解决最终用户的问题,为此,需要从用户那里获取一些信息。函数input()让程序暂停运行,等待用户输入一些文本。
py3study
2020/01/06
1.2K0
python 接收用户的输入
None是一个特殊的常量。 None和False不同。 None不是0。 None不是空字符串。 None和任何其他的数据类型比较永远返回False。 None有自己的数据类型NoneType。 你可以将None复制给任何变量,但是你不能创建其他NoneType对象。
py3study
2020/01/09
2K0
python 接收用户的输入
输入数字n然后输出0到n的全排列
给定一个正整数n, 则输出0到n的所有排列 输入:2 输出:012 021 102 120 201 210 代码: private static Set<String> result = new HashSet<String>(); public static void allSort(int number) { if (number < 0) { return; } String str=""; for (int i = 0;i <= number; i
用户6055494
2019/10/21
1.1K0
python用户输入(三)
name = "Li QW" #定义变量 fname = name  #fname等于name变量产生的值 print("My name is " , name,fname) name = "study"
py3study
2020/01/13
1K0
android adb logcat 根据包名打印日志
android根据包名打印日志 Linux or Mac: adb logcat | grep -F "`adb shell ps | grep com.abc.package | cut -c10-15`" windows: adb logcat | findstr com.abc.package adb logcat -v time | find “XXX” >D:\myLog2.txt "XXX"可以用包名,或者关键字去代替。
tea9
2022/07/16
2.2K0
Shell - 根据用户名查询该用户的相关信息
小小工匠
2023/09/01
1750
Shell - 根据用户名查询该用户的相关信息
点击加载更多

相似问题

根据用户输入的数字重新排列文本输入字段

20

如何根据用户输入打印if语句?

30

根据用户输入打印回算

24

根据用户输入打印不同的句子

20

根据用户的输入,打印正确的事件

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文