随笔-104  评论-1067  文章-1  trackbacks-1

挑战极限--有本事拿.Net+SQL SERVER试试4秒极限!

  最近“小学生”写了一个关于批量数据导入数据库的博文,实验工具是.Net +SQL SERVER,很多网友表示对此很感兴趣,本文也排在24小时热门一列。同时,有一些网友也用了不同工具挑战这个4秒的极限,我觉得如果加入挑战,就要遵守挑战的规则,使用一致的工具与环境做实验。

  现向大家征集,使用.Net + SQL SERVER,导入数据的程序,纸上谈兵无用,过来秀秀你的实力!

  实验要求:

      4秒条件不是没有前提的,既然是挑战,就遵守如下规则:

      1..Net平台开发,使用ADO.NET操作数据库
      2.数据库是SQL SERVER,单表单字段 (表名为TableB、字段名为Value1,Nvarchar(50))

      3.不要使用存储过程
      4.100万条数据为一个测试单元
      5.硬件配置2*2.0 G CPU,2G内存

  征集方式:

      大家把最终代码,在23日前,发送至我的邮箱 aicken@live.cn 。代码需保证无Bug,无彩蛋,无病毒,本人将实事求是,运行各位的代码。

  代码示例:http://www.cnblogs.com/isline/archive/2010/03/18/1688783.html

   还是那句话,遵守规则,才有意义!

天道酬勤不酬怨
李鸣(aicken)原创 转载注明
posted on 2010-03-19 09:31 Aicken(李鸣) 阅读(3834) 评论(49) 编辑 收藏

评论:
#1楼 2010-03-19 09:37 | builderman      

 回复 引用 查看   
#2楼 2010-03-19 09:41 | 麒麟      
打酱油
 回复 引用 查看   
#3楼 2010-03-19 09:42 | 吴峰      
围观挑战..
 回复 引用 查看   
#4楼[楼主] 2010-03-19 09:43 | 李鸣(aicken)      
引用xiaotie:倒数据过程中,尤其是大量的小数据,sql语句的编译也占一定分量,既然是挑战极限,就应该把这个分量压得很低。。。所以,限制存储过程是不合理的,因为它不是生产环境下的现实约束。

嗯,是有道理。
不过大家都不用存储过程,也是公平的。极限是发生在一个公有的前提下的,是相对的,不是绝对的。

 回复 引用 查看   
#5楼 2010-03-19 09:46 | Ivony...      
我觉得这俩人都灰尝无聊,当然,LZ更无聊。

无聊就算了,污染版面就着实可恶。。。。

 回复 引用 查看   
#6楼 2010-03-19 09:49 | 不若相忘于江湖      

不明真相的群众路过... 围观..

 回复 引用 查看   
#7楼 2010-03-19 09:57 | 不得闲      
哈哈,围观挑战!对我无实质意义!
 回复 引用 查看   
#8楼 2010-03-19 10:03 | seagreen7      
有意思么,怎么让我看着很不爽!!
 回复 引用 查看   
#9楼 2010-03-19 10:04 | Muse      
100万条nvarchar(50)大约95M,在100M LAN上纯粹的传输数据也要将近20秒,这就是现实情况,别的不用说了。
 回复 引用 查看   
#10楼[楼主] 2010-03-19 10:04 | 李鸣(aicken)      
引用Ivony...:
我觉得这俩人都灰尝无聊,当然,LZ更无聊。

无聊就算了,污染版面就着实可恶。。。。

没法子哥们,本来不无聊的,不过无聊就无聊到底吧!我倒要看看那些动不动就善为人师的家伙到底几斤几两!

 回复 引用 查看   
#11楼[楼主] 2010-03-19 10:06 | 李鸣(aicken)      
引用Muse:100万条nvarchar(50)大约95M,在100M LAN上纯粹的传输数据也要将近20秒,这就是现实情况,别的不用说了。

同一机器,不是LAN
而且就算是LAN,是varchar(50)大约95M,而程序传递的数据没有这么大

 回复 引用 查看   
#12楼 2010-03-19 10:12 | LanceZhang      
条件限制的这么死,就算能优化掉1秒,又有什么实际意义呢?

出来混,被challenge一下没什么大不了的,别上火啊

 回复 引用 查看   
#13楼 2010-03-19 10:16 | fzxu_05      
哎,无聊啊
 回复 引用 查看   
#14楼[楼主] 2010-03-19 10:18 | 李鸣(aicken)      
引用xiaotie:
@Muse
nvarchar(50);此外,还可以压缩传输,到数据库端再处理。但LZ啥都限制住了,根本没法进行更深的优化。就好比说,让比赛计算多项式乘法,但限制不让用dft,这还咋比?

已经说过了,程序与数据库是一台机器

 回复 引用 查看   
#15楼 2010-03-19 10:24 | Muse      
@李鸣(aicken)
本来你这种测试我也是做过的,因为想了解一些性能方面的事情。
但是你现在的做法有点不对了。

机器性能并不完全取决于CPU和内存,而且:
同样2G*2的CPU,PD、Core2、K8、PII、ix、Xeon是有巨大差异的;
同样同样是2G内存,DDR2-667和DDR3-1600以及是否使用集成内存控制器、单/双/三/四通道也是有巨大差异的。

其他方面,硬盘对数据库性能有着巨大影响,PATA、SATA、SAS、各种RAID。

如果要限制,就全部限制,而要挑战数据库的极限,就把有些东西放宽松,比如ADO.NET可能就不是最佳性能,.NET也不是最快的。

另外说一句抬杠的话:VFP也是数据库,如果挑战数据库极限的话,VFP完全有资格,而且在普通PC上,没有任何数据库能在简单的插入和查询操作上达到VFP的速度。

 回复 引用 查看   
#16楼 2010-03-19 10:34 | Muse      
@xiaotie
抬杠吗,当然是不讲理了,呵呵

 回复 引用 查看   
#17楼[楼主] 2010-03-19 10:34 | 李鸣(aicken)      
引用Muse:
@李鸣(aicken)
本来你这种测试我也是做过的,因为想了解一些性能方面的事情。
但是你现在的做法有点不对了。

机器性能并不完全取决于CPU和内存,而且:
同样2G*2的CPU,PD、Core2、K8、PII、ix、Xeon是有巨大差异的;
同样同样是2G内存,DDR2-667和DDR3-1600以及是否使用集成内存控制器、单/双/三/四通道也是有巨大差异的。

其他方面,硬盘对数据库性能有着巨大影响,PATA、SATA、SAS、各种RAID。

如果要限制,就全部限制,而要挑战数据库的极限,就把有些东西放宽松,比如ADO.NET可能就不是最佳性能,.NET也不是最快的。

另外说一句抬杠的话:VFP也是数据库,如果挑战数据库极限的话,VFP完全有资格,而且在普通PC上,没有任何数据库能在简单的插入和查询操作上达到VFP的速度。

1.代码的运行环境是一致的,你受到影响,别人也是。我说过极限是相对的,不是绝对的,就像极值问题,极值不是最值。
2.本实验不是挑战数据库的极限,挑战各种数据库的极限,谁有这个能力?
别有这么多顾虑,还是那句话,同样的平台,同样的环境,导数据的方法很多,就看你会不会用,用得好不好。

 回复 引用 查看   
#18楼 2010-03-19 10:38 | 寒 刚入门      
根据你的规则,不用改代码就能提高速度.
只要增加N块硬盘(最好固态)做raid10
肯定提高数倍.
这个挑战很无聊.

 回复 引用 查看   
#19楼[楼主] 2010-03-19 10:47 | 李鸣(aicken)      
引用blackcat:
引用Muse:
@李鸣(aicken)
本来你这种测试我也是做过的,因为想了解一些性能方面的事情。
但是你现在的做法有点不对了。

机器性能并不完全取决于CPU和内存,而且:
同样2G*2的CPU,PD、Core2、K8、PII、ix、Xeon是有巨大差异的;
同样同样是2G内存,DDR2-667和DDR3-1600以及是否使用集成内存控制器、单/双/三/四通道也是有巨大差异的。

其他方面,硬盘对数据库性能有着巨大影响,PATA、SATA、SAS、各种RAID。

如果要限制,就全部限制,而要挑战数据库的极限,就把有些东西放宽松,比如ADO.NET可能就不是最佳性能,.NET也不是最快的。

另外说一句抬杠的话:VFP也是数据库,如果挑战数据库极限的话,VFP完全有资格,而且在普通PC上,没有任何数据库能在简单的插入和查询操作上达到VFP的速度。


同意。
关键是存储。
这是个io极端密集的应用。

嗯,存储是很重要。
但是在存储上做文章并不是本实验的目的,也许你利用存储优化很熟,而我希望的是能挖掘出更多的新程序,新算法,新方法,这些程序都是基于一个环境,结果是相对公平的。

顺便说一句,DELL 2850 是5块硬盘的RAID5

 回复 引用 查看   
#20楼[楼主] 2010-03-19 10:50 | 李鸣(aicken)      
这条留言我不想引用任何人的发言,只是对那些善为人师
引用xiaotie:
@李鸣(aicken)
这都是最初级的导数据的方法 有什么好比较的

你会吗?

 回复 引用 查看   
#21楼[楼主] 2010-03-19 11:45 | 李鸣(aicken)      
引用xiaotie:
@李鸣(aicken)
(1)这些方法我都不擅长,因为我不熟悉数据库开发。但我知道这只是最基本的导数据的方法。想用的时候直接搜索一下就出来了。
(2)不过就算不熟悉数据库开发,我觉得我对这个问题的理解比lz要深刻一点点,嘿嘿
(3)之所以深刻一点点是因为,虽然我不知道这些方法的名字,不知道这些方法的语法,但对这些方法的背后原理,对数据库内部的实现机制,俺还是了解的。
(4)之所以(3)是因为对sql没兴趣,对数据库自身感兴趣。从来没看完过一本sql的书,但至少看完了《数据库系统实现》。

我觉得数据库的许多本质是通过sql表现的,同样对sql的处理,也反映了数据库的很多本质性问题。
你说你对数据库自身感兴趣,我不知道你说的“数据库自身”是怎样定义的?数据库说白了就是数学和存储,到了一定的高度,又怎能“只识一斑”呢?
还有关于这些语句的“数据库内部的实现机制”,我倒是很有兴趣洗耳恭听。
你说了不擅长开发,想用时搜一下就出来了;你说你理解数据库比我深刻;你说你对sql不敢兴趣,只对数据库自身感兴趣;你说了这么多我搞不懂这些东西和主题有什么关系?
如果你有环境,我很想知道,以你的方法,.Net + SQL SERVER的情况下(CPU和内存要与规则一致),百万数据你能提高到什么程度?

 回复 引用 查看   
#22楼 2010-03-19 12:46 | 不得闲      
哈哈,围观!这些东西,我用不着!对我还有点用处的,是如何从N多数据中查询出希望的数据(这些数据,可能来源于N个表),而且我想现在多数人都应该是对查询这个效率更加感兴趣!哈哈
 回复 引用 查看   
#23楼 2010-03-19 12:53 | Julin Rain      
没有意义,开发环境的测试跟电脑的配置都不一定有直接关系,同样的一个windowsxp开发环境,同样的数据库脚本,同样的数据库版本,连接本机(xp)和连接服务器(以2K03为例)都是非常大的差距。所谓编程极限,通常是算法,底层方面的东西,就是尽可能减少因运行环境不同而受到更大的影响。

btw:表动不动拿极限说事,浪费大家眼神。

 回复 引用 查看   
#24楼 2010-03-19 13:00 | Arthas-Cui      
不用该任何代码。做一个修改就行了:
在内存里虚拟硬盘。。。。。

 回复 引用 查看   
#25楼[楼主] 2010-03-19 13:09 | 李鸣(aicken)      
引用xiaotie:
@李鸣(aicken)

你这个问题,必须要深入理解数据库才行,而你上面的限制第五条写了CPU和内存而没写IO,一下子等于向看客坦白了你的数据库的基础很差,至少比我这个sql不熟悉的人差,你自己不觉得,但大家一看就明白了。

=...


我记得我说过是DELL 2850,单库单表,没做任何优化,你要我说几遍啊!
DELL 2850是要告诉你RAID 5存储;
单库单表是要告诉你最简洁的数据库环境;
没有做任何优化是要告诉你只有一个数据文件与日志文件,没有表分区!
这些不是I/O限制吗!写出CPU和内存是为了让程序员知悉有什么样的资源可以利用,避免因为.Net程序占用CPU过高或内存溢出!
还有我写了I/O有什么用?程序是要发给我来运行的,I/O以及数据库、硬件对于大家的瓶颈是一样的,就看你的程序能不能突破极限!听懂了没有!
请你不要再动不动就说别人比你差了,看看你回复的内容,除了说你数据库怎样怎样牛,就是对实验环境进行挑剔,要么就说别人比你差!有别的事吗你!

 回复 引用 查看   
#26楼 2010-03-19 13:33 | n216      
xiaotie:你上篇文章的问题,先不说数据量问题。就在你这个数据量上,你没有剖析出具体的瓶颈在哪里,针对瓶颈进行优化。比如说,瓶颈是在数据传输,还是sql语句解析,还是在数据库存储引擎上?这些都需要且都可以通过定量测量来得到近似的答案,然后有针对性的进行优化。如果是传输问题,可以压缩数据,如果是解析地方的问题,可以用存储过程,如果是磁盘IO,那就硬件和数据库两方面下手。这些你都不测量,只是简单的比较各种结果,得出来的结果没大价值。
-----------------------------------
非常同意!此评论切中要害!
任何比较都要一个目的和手段,楼主目的不明,手段平平,还不如楼上指出装入数据的一些关键点:数据传输、语句解析、存储引擎、I/O操作等重要的问题。
我最佩服的那些什么都不懂的人,只要敢编写语句,也不知道语句背后的原理和实现,就把语句的结果当做自己的发现和成果!
这种误人子弟的做法真的很幼稚!很不礼貌!

楼主应该反思一下,你写的那些语句别人能写出来吗?如果别人写不出来!你为什么能写出来?你写出来的原因是你能比别人更懂数据库原理吗?如果你什么都不懂!那就应该沉下心来学一些有用的东西,做一些有用的东西。可以向楼上的学习学习!



 回复 引用 查看   
#27楼[楼主] 2010-03-19 13:41 | 李鸣(aicken)      
引用n216:
xiaotie:你上篇文章的问题,先不说数据量问题。就在你这个数据量上,你没有剖析出具体的瓶颈在哪里,针对瓶颈进行优化。比如说,瓶颈是在数据传输,还是sql语句解析,还是在数据库存储引擎上?这些都需要且都可以通过定量测量来得到近似的答案,然后有针对性的进行优化。如果是传输问题,可以压缩数据,如果是解析地方的问题,可以用存储过程,如果是磁盘IO,那就硬件和数据库两方面下手。这些你都不测量,只是简单的比较各种结果,得出来的结果没大价值。
-----------------------------------
非常同意!此评论切中要害!
任何比较都要一个目的和手段,楼主目的不明,手段平平...

咦,终于又看到这位用VPF和.Net+SQL SERVER比较性能的高人了,不想评论你的这种行为。。。

 回复 引用 查看   
#28楼[楼主] 2010-03-19 13:48 | 李鸣(aicken)      
这里不欢迎那些说“人”的人,如果那些人觉得自己比别人强,请到别的坑里叫唤。这里讨论的是技术。
一位优秀的技术人员,首先不会去评论他人如何如何,也不轻易的说自己优秀,因为他们除了技术优秀,还有自知之明!
因为关注点不同,所以你自认为出色的地方,其实不是别人关注的重点。

 回复 引用 查看   
#29楼[楼主] 2010-03-19 13:51 | 李鸣(aicken)      
引用n216:
楼主应该反思一下,你写的那些语句别人能写出来吗?如果别人写不出来!你为什么能写出来?你写出来的原因是你能比别人更懂数据库原理吗?如果你什么都不懂!那就应该沉下心来学一些有用的东西,做一些有用的东西。可以向楼上的学习学习!


如果我没记错的话,某位关注TB级别的VFP高手同样写出一段“别人写不出来的东西”,还在首页秀了一下,哈哈,搞笑!

 回复 引用 查看   
#30楼 2010-03-19 13:54 | n216      
引用李鸣(aicken):
引用n216:
xiaotie:你上篇文章的问题,先不说数据量问题。就在你这个数据量上,你没有剖析出具体的瓶颈在哪里,针对瓶颈进行优化。比如说,瓶颈是在数据传输,还是sql语句解析,还是在数据库存储引擎上?这些都需要且都可以通过定量测量来得到近似的答案,然后有针对性的进行优化。如果是传输问题,可以压缩数据,如果是解析地方的问题,可以用存储过程,如果是磁盘IO,那就硬件和数据库两方面下手。这些你都不测量,只是简单的比较各种结果,得出来的结果没大价值。
-----------------------------------
非常同意!此评论切中要害!
任何比较都要一个目的和手段,楼主目的不明,手段平平...

咦,终于又看到这位用VPF和.Net+SQL SERVER比较性能的高人了,不想评论你的这种行为。。。

我从来不想去比具体数据库之间的优劣,我只是通过具体数据库的应用来说明我的看法。我早就说过注重具体数据库和具体设计语言的程序员还处在一个很低的水平。我只是看了后,忍不住说了几句。
至于用.net+SQL SERVER来进行性能比较,小于4秒对于我来说,而不太想做,那毕竟是我的强项,我不想用强项和别人的弱项进行比较,那样做太不公平了。不要说我不敢比呀!只要有足够的代价,我也许有兴趣一试的!免费我是反对的,我一直提倡程序员的市场意识,不要做没有价值的事!

 回复 引用 查看   
#31楼 2010-03-19 14:07 | 若不是因为你      
呵呵,从早上一直关注这个挑战,很有意思,xiaotie和n216一直说别人不行,不行才来学习的,学点东西,大家互相学习。如果你觉得别人不行,还不愿意赐教,那我无话好说了,如果2位喜欢赐教,那就和楼主比试一下,不要一上来就说觉得没意义,要不就说要有钱。
1,我不是在这里挑事,我也参加了点评论
2,我有自知之明,我没你们强,但是我仍然有权利“不懂,不会”,如果你们愿意赐教,那我更高兴。不要看不起“不懂,不会”的。
3,作为一个“不懂,不会”的人,我想和你们说一句,这个权利我们可以有。

 回复 引用 查看   
#32楼 2010-03-19 14:28 | blackcat      
引用若不是因为你:
呵呵,从早上一直关注这个挑战,很有意思,xiaotie和n216一直说别人不行,不行才来学习的,学点东西,大家互相学习。如果你觉得别人不行,还不愿意赐教,那我无话好说了,如果2位喜欢赐教,那就和楼主比试一下,不要一上来就说觉得没意义,要不就说要有钱。
1,我不是在这里挑事,我也参加了点评论
2,我有自知之明,我没你们强,但是我仍然有权利“不懂,不会”,如果你们愿意赐教,那我更高兴。不要看不起“不懂,不会”的。
3,作为一个“不懂,不会”的人,我想和你们说一句,这个权利我们可以有。


请你先仔细看原帖和所有评论。

 回复 引用 查看   
#33楼 2010-03-19 14:40 | 若不是因为你      
楼上的,请问你说我哪里没看明白了?至少给我的感觉就是这样的
 回复 引用 查看   
#34楼[楼主] 2010-03-19 14:42 | 李鸣(aicken)      
引用n216:
至于用.net+SQL SERVER来进行性能比较,小于4秒对于我来说,而不太想做,那毕竟是我的强项,我不想用强项和别人的弱项进行比较,那样做太不公平了。不要说我不敢比呀!只要有足够的代价,我也许有兴趣一试的!免费我是反对的,我一直提倡程序员的市场意识,不要做没有价值的事!

哈哈哈,本年度最幽默回复。
我就没看你发一过篇技术方面的博客!当然FoxPro除外!

 回复 引用 查看   
#35楼[楼主] 2010-03-19 14:44 | 李鸣(aicken)      
引用若不是因为你:
呵呵,从早上一直关注这个挑战,很有意思,xiaotie和n216一直说别人不行,不行才来学习的,学点东西,大家互相学习。如果你觉得别人不行,还不愿意赐教,那我无话好说了,如果2位喜欢赐教,那就和楼主比试一下,不要一上来就说觉得没意义,要不就说要有钱。
1,我不是在这里挑事,我也参加了点评论
2,我有自知之明,我没你们强,但是我仍然有权利“不懂,不会”,如果你们愿意赐教,那我更高兴。不要看不起“不懂,不会”的。
3,作为一个“不懂,不会”的人,我想和你们说一句,这个权利我们可以有。


我也不太理解这2位是什么心态,就我本来的初衷,只是想挖掘一下.Net+SQL SERVER的最佳导数方法,没想到技术没人讨论,倒是有不少讨论“人”的高手。。。

 回复 引用 查看   
#36楼 2010-03-19 14:47 | 若不是因为你      
如果你们觉得楼主,用词不好呢(不应该用挑战极限)。那你们就拿出点东西来,不叫一句一句小学生叫着,有意思吗?事实胜于雄辩!

 回复 引用 查看   
#37楼 2010-03-19 14:49 | 若不是因为你      
考试还考一样的卷子呢。。。。。。。你们非要用和楼主不一样的来比试?我觉得这样不能说明什么问题。
 回复 引用 查看   
#38楼[楼主] 2010-03-19 14:55 | 李鸣(aicken)      
嗯,虽然我不认识LS的兄弟,但是这正是我想说的。自知者智,知人者愚,这里太多不知斤两的“高手”了!
 回复 引用 查看   
#39楼 2010-03-19 15:02 | 若不是因为你      
呵呵,楼主也不要这样说,我觉得,不管高手,还是小学生,如果对技术爱好,愿意探讨,我们都心平气和的谈,追求的不就是个更好的结果,如果他们有更好的方法,那对你来说不也是一个好的事情。
我觉得探讨技术,都要尊重,即使别人有不足的地方,你愿意赐教,就赐教,不愿意,那也不要瞧不起别人所说的东西,谁不是从菜鸟变成大牛的?

 回复 引用 查看   
#40楼[楼主] 2010-03-19 16:29 | 李鸣(aicken)      
引用blackcat:
引用李鸣(aicken):
引用blackcat:问题也就是在这里,楼主没有说明存储的前提下(楼主说了,是dell那个服务器,但是DbServer大多都是外挂存储的,存储的情况不明什么都没有意义。),说了百万4秒的结论,这个很让熟手(没有说高手大牛啥的)。。。。。
反正我觉得很无语,不具有可比性。



实验是有前提的,只是说明在相对条件下,出现的结果,如果你对结果有意见要发表,就要在同样的条件下比较。你说的大多数DbServer外挂,这样做对于本实验有什么意义吗?

你觉得无语,你觉得无可比性,那你觉得你的好友弄个VFP和.Net比较有可比性吗?我想听听你的高见!



你什么都不说,默认就当你是常规服务器,谁知道你家dbserver这么水,居然数据文件就是和os同样的filesystem。

我没说他vfp测试那个有意思,但是有个前提,是谁 先 在这里说百万4秒极限问题了?


看好,实验环境,DB、OS同台

 回复 引用 查看   
#41楼[楼主] 2010-03-19 16:31 | 李鸣(aicken)      
引用blackcat:
引用李鸣(aicken):
引用blackcat:
引用若不是因为你:
呵呵,楼主也不要这样说,我觉得,不管高手,还是小学生,如果对技术爱好,愿意探讨,我们都心平气和的谈,追求的不就是个更好的结果,如果他们有更好的方法,那对你来说不也是一个好的事情。
我觉得探讨技术,都要尊重,即使别人有不足的地方,你愿意赐教,就赐教,不愿意,那也不要瞧不起别人所说的东西,谁不是从菜鸟变成大牛的?


考试还考一样的卷子呢。。。。。。。你们非要用和楼主不一样的来比试?我觉得这样不能说明什么问题。

既然你这么说,
其实是这样,我觉得,反对他,也没有说他这个方法有错了。单线程,Sq...

楼主还是上火呢。
我郑重问一句,我们确认了单线程bulkinsert最优的前提下,你的所谓极限测试,有什么意义?


我也郑重的问一句,你怎么确定单线程bulkinsert是最优的了?不是通过实验吗!
 回复 引用 查看   
#42楼 2010-03-19 17:00 | 暗香浮动      
真够无聊的.跟公鸡一样.
 回复 引用 查看   
#43楼 2010-03-19 17:10 | 阿水      
最快的方式就是SqlBulkCopy 就是以前的DTS 现在的SSIS,真的不知道有什么好挑战的?
 回复 引用 查看   
#44楼[楼主] 2010-03-19 20:33 | 李鸣(aicken)      
@阿水

嗯?能具体说一下吗,这一点好像和试验结果有些不相符。
http://www.cnblogs.com/isline/archive/2010/03/18/1688783.html

 回复 引用 查看   
#45楼 2010-03-19 21:57 | duncannjm      
这个规则把高手都限定死了吧,就好像让大家来做1+1,看谁先算出来一样!
 回复 引用 查看   
#46楼 2010-03-20 10:59 | 烙馅饼喽      
我感觉应该是BCP最快...BCP,BULKINSERT这两个应该是最快的了,没有其他的了应该
 回复 引用 查看   
#47楼 2010-03-22 09:02 | 阿水      
@李鸣(aicken)
一次两次测试有的时候不能说明问题。SqlBulkCopy内部实现和一般的INSERT 不同的,具体我也忘了。但是这个是最快的方式。你可以网上找找看SqlBulkCopy的内部原理。

 回复 引用 查看   
#48楼[楼主] 2010-03-23 16:04 | 李鸣(aicken)      
@阿水
嗯,在空表实验与有数据负载时,SqlBulkCopy和BULKINSERT运行时间有逐渐接近的趋势

 回复 引用 查看   
#49楼[楼主] 2010-03-23 16:44 | 李鸣(aicken)      
今天已经超过了方案征集期,现在我把已有的方案连接放在这里,感兴趣的可以下载。关于这个实验,有几位网友给我发邮件,向我
要征集到的方案,现在我把已有的方案连接放在这里,感兴趣的可以下载,我就不一一回复了。
而关注数据库方面的网友,恐怕要让你们失望了,就像我说过数遍的原因,数据库的优化度量起来难度比较大,假如你今天说要分布
数据文件,明天说要做分区表,后天说要个盘阵环境分布I/O,这种优化是很难度量的,已经脱离了本实验的目的,而且这些都是最
基础的知识,有一些经验的人都知道,没必要这这里反复“提醒”我,我们的关注点不同罢了,除了通过数据库优化提升效率外,程
序方面可做的事情还有很多。
还是那句话,一个人的真正水平不是看他的博客,而是看他对其他博客的评论内容,在这里劝大家,踏实做事,勿议他人!

感谢“孔明”网友的支持:“insert into select”方法运行5次,最好成绩为6秒
感谢“于爱武”网友的支持:Oracle数据库的外部表速度的确不凡!
感谢“可以不可以”网友的支持:你的方法似乎运行不了,我打包在一个solution里了,你核对一下

以上网友如果需要屏幕录像证明运行时间,可以再联系我,谢谢!

SQL SERVER方案合集:http://files.cnblogs.com/isline/sqltest1.rar
Oracle方案:http://files.cnblogs.com/isline/Oracle.rar
另外,我的同事还为此写了一篇SQL SERVER与Oracle对比的文章,预约发在6月的《软件报》上,请有兴趣的网友关注!

 回复 引用 查看   
缘清 aicken

 



名:缘( aicken)
MSN & EMAILaicken@live.cn


开大学软工程硕士
研究.Net与企

“软件报”“IT专家网”约撰稿人

我的MVP配置

我的新浪
像影随心

昵称:Aicken(李鸣)
园龄:3年1个月
粉丝:78
关注:7

搜索

 

常用链接

我的标签

随笔分类(115)

随笔档案(104)

积分与排名

  • 积分 - 262657
  • 排名 - 284

阅读排行榜

评论排行榜

推荐排行榜