由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
DotNet版 - Bulk merge?
相关主题
datagrid helpC# DateTime to Oracle Date
请问可能对C# dataSet作query吗?DataTable.NewRow的primary key初始为0的问题
一道mcad考试题求解(有关DataAdapter)请教一下MVC的View如何显示动态column的问题
How to Call Stored Procedure in C# .Net?大牛给科普下哪个好
A puzzle of using OPDcrystal report for .net
问个基础问题Re: Application Interoperability btw .N
小菜鸟求助,PDF header signature not found[转载] 有没有人出来反驳我???
.net操作数据库的方法,哪个最好?h
相关话题的讨论汇总
话题: bulk话题: table话题: merge话题: insert
进入DotNet版参与讨论
1 (共1页)
M7
发帖数: 219
1
我有很多rows(比如说10万条)要写进SQL server. 现在用的是DataTable.
WriteToServer(). 相当于bulk insert, 效率很高。
但是在一个比较少见的情况下,这10万条rows里面会有很多重复,也有可能全都是重
复的。DataTable.WriteToServer 报错primary key violation, 一次只说一条重复。
所以依照error message, 删除重复,再writeToServer的方法效率极低。
DataTable有没有类似bulk merge的操作?
如果没有bulk merge, 至少可以bulk insert到一个temp table, 然后再merge这个
template table to the real destination table. 但是这样分两步的操作,在绝大多
数的情况下(即没有重复的情况下),应该是降低了insert的效率。
有高人指点一下吗?多谢多谢!
c****e
发帖数: 1453
2
groupby一下再写?
如果想提高效率,可以先sample一下让后决定一步还是两步。
s***o
发帖数: 2191
3
What parameters do you pass into this WriteToServer() method? Is it possible
to do a filtering when you construct the parameters, for example, by using
a HashSet to hold all the primary keys
c*********e
发帖数: 16335
4
很多rows(比如说10万条)是在text file里还是在一个table里?

【在 M7 的大作中提到】
: 我有很多rows(比如说10万条)要写进SQL server. 现在用的是DataTable.
: WriteToServer(). 相当于bulk insert, 效率很高。
: 但是在一个比较少见的情况下,这10万条rows里面会有很多重复,也有可能全都是重
: 复的。DataTable.WriteToServer 报错primary key violation, 一次只说一条重复。
: 所以依照error message, 删除重复,再writeToServer的方法效率极低。
: DataTable有没有类似bulk merge的操作?
: 如果没有bulk merge, 至少可以bulk insert到一个temp table, 然后再merge这个
: template table to the real destination table. 但是这样分两步的操作,在绝大多
: 数的情况下(即没有重复的情况下),应该是降低了insert的效率。
: 有高人指点一下吗?多谢多谢!

g*******n
发帖数: 86
5
前一阵遇到了跟你一样的问题,我的方法是在sql server建立一个staging table,有
目标table一样的structure;bulk insert到这里,然后用sql query 给重复的row编上
号,然后只把这些id =1 的row insert到正式table里。这个query用sql里的merge
c*********e
发帖数: 16335
6
用staging table,会不会让用户感觉速度慢了?

【在 g*******n 的大作中提到】
: 前一阵遇到了跟你一样的问题,我的方法是在sql server建立一个staging table,有
: 目标table一样的structure;bulk insert到这里,然后用sql query 给重复的row编上
: 号,然后只把这些id =1 的row insert到正式table里。这个query用sql里的merge

M7
发帖数: 219
7
我有很多rows(比如说10万条)要写进SQL server. 现在用的是DataTable.
WriteToServer(). 相当于bulk insert, 效率很高。
但是在一个比较少见的情况下,这10万条rows里面会有很多重复,也有可能全都是重
复的。DataTable.WriteToServer 报错primary key violation, 一次只说一条重复。
所以依照error message, 删除重复,再writeToServer的方法效率极低。
DataTable有没有类似bulk merge的操作?
如果没有bulk merge, 至少可以bulk insert到一个temp table, 然后再merge这个
template table to the real destination table. 但是这样分两步的操作,在绝大多
数的情况下(即没有重复的情况下),应该是降低了insert的效率。
有高人指点一下吗?多谢多谢!
c****e
发帖数: 1453
8
groupby一下再写?
如果想提高效率,可以先sample一下让后决定一步还是两步。
s***o
发帖数: 2191
9
What parameters do you pass into this WriteToServer() method? Is it possible
to do a filtering when you construct the parameters, for example, by using
a HashSet to hold all the primary keys
c*********e
发帖数: 16335
10
很多rows(比如说10万条)是在text file里还是在一个table里?

【在 M7 的大作中提到】
: 我有很多rows(比如说10万条)要写进SQL server. 现在用的是DataTable.
: WriteToServer(). 相当于bulk insert, 效率很高。
: 但是在一个比较少见的情况下,这10万条rows里面会有很多重复,也有可能全都是重
: 复的。DataTable.WriteToServer 报错primary key violation, 一次只说一条重复。
: 所以依照error message, 删除重复,再writeToServer的方法效率极低。
: DataTable有没有类似bulk merge的操作?
: 如果没有bulk merge, 至少可以bulk insert到一个temp table, 然后再merge这个
: template table to the real destination table. 但是这样分两步的操作,在绝大多
: 数的情况下(即没有重复的情况下),应该是降低了insert的效率。
: 有高人指点一下吗?多谢多谢!

g*******n
发帖数: 86
11
前一阵遇到了跟你一样的问题,我的方法是在sql server建立一个staging table,有
目标table一样的structure;bulk insert到这里,然后用sql query 给重复的row编上
号,然后只把这些id =1 的row insert到正式table里。这个query用sql里的merge
c*********e
发帖数: 16335
12
用staging table,会不会让用户感觉速度慢了?

【在 g*******n 的大作中提到】
: 前一阵遇到了跟你一样的问题,我的方法是在sql server建立一个staging table,有
: 目标table一样的structure;bulk insert到这里,然后用sql query 给重复的row编上
: 号,然后只把这些id =1 的row insert到正式table里。这个query用sql里的merge

g*******n
发帖数: 86
13
是慢,但是我这个job是nightly run,对performance要求不是那么高, 最影响速度的
其实是scan一个没有pk的可以允许重复的table的过程
1 (共1页)
进入DotNet版参与讨论
相关主题
hA puzzle of using OPD
CrystalReport 问题问个基础问题
用惯了cvs,对TFS很不适应小菜鸟求助,PDF header signature not found
怒了.net操作数据库的方法,哪个最好?
datagrid helpC# DateTime to Oracle Date
请问可能对C# dataSet作query吗?DataTable.NewRow的primary key初始为0的问题
一道mcad考试题求解(有关DataAdapter)请教一下MVC的View如何显示动态column的问题
How to Call Stored Procedure in C# .Net?大牛给科普下哪个好
相关话题的讨论汇总
话题: bulk话题: table话题: merge话题: insert