| 订阅 | 在线投稿
分享
 
 
 

讲解SQL Server海量数据导入的最快方法

2008-07-11 05:57:51  编辑来源:互联网  国际版  评论
 
 

本文为【讲解SQL Server海量数据导入的最快方法】的汉字拼音对照版显示拼音

  zhepianluntanwenzhangsaidiwangjishushequxiangxijiangjieleSQL Serverhailiangshujudaorudezuikuaifangfagengduoneirongqingshenkaoxiawen

  zuijinzuomouxiangmudeshujukufenxiyaoshixianduihailiangshujudedaoruwentijiushizuiduoba200wantiaoshujuyicidaorusqlserverzhongruguo使shiyongputongdeinsertyujujinxingxiechudehuakongpameigebaxiaoshiwanbuchengrenwuxianshikaolv使shiyongbcpdanzheshijiyuminglingxingdeduiyonghulaishuoyouhaoxingtaichashijibudakeneng使shiyongzuihoujueding使shiyongBULK INSERTyujushixianBULK INSERTyekeyishixiandashujuliangdedaoruerqiekeyitongguobianchengshixianjiemiankeyizuodefeichangyouhaotadesuduyehengaodaoru100wantiaoshujubudao20miaozhongzaisudushangkongpawuchuqiyouzhe

  danshi使shiyongzhezhongfangshiyeyoutadejigequedian

  1.xuyaoduzhanjieshoushujudebiao

  2.huichanshengdaliangderizhi

  3.congzhongqushujudewenjianyougeshixianzhi

  danxiangduiyutadesudulaishuozhexiequediandoushikeyikefudeerqieniruguoyuanyixishengyidiansududehuahuankeyizuogengjingquedekongzhishenzhikeyikongzhimeiyixingdecharu

  duiyuchanshengzhanyongdaliangkongjianderizhideqingkuangwomenkeyicaiquzaidaoruqiandongtaigenggaishujukuderizhifangshiweidarongliangrizhijiluhuifumoshizheyangjiubuhuijilurizhiledaorujieshuhouzaihuifuyuanlaideshujukurizhijilufangshi

  jutideyigeyujuwomenkeyizheyangxie

  alter database taxi

  set RECOVERY BULK_LOGGED

  BULK INSERT taxi..detail FROM 'e:\out.txt'

  WITH (

  ?? DATAFILETYPE = 'char',

  ?? FIELDTERMINATOR = ',',

  ?? ROWTERMINATOR = '\n',

  ?TABLOCK

  )

  alter database taxi

  set RECOVERY FULL

  zhegeyujujiangconge:\out.txtdaochushujuwenjiandaoshujukutaxidedetailbiaozhong原文
 
 
 
这篇论坛文章(赛迪网技术社区)详细讲解了SQL Server海量数据导入的最快方法,更多内容请参考下文: 最近做某项目的数据库分析,要实现对海量数据的导入问题,就是最多把200万条数据一次导入sqlserver中,如果使用普通的insert语句进行写出的话,恐怕没个把小时完不成任务,先是考虑使用bcp,但这是基于命令行的,对用户来说友好性太差,实际不大可能使用;最后决定使用BULK INSERT语句实现,BULK INSERT也可以实现大数据量的导入,而且可以通过编程实现,界面可以做的非常友好,它的速度也很高:导入100万条数据不到20秒中,在速度上恐怕无出其右者。 但是使用这种方式也有它的几个缺点: 1.需要独占接受数据的表 2.会产生大量的日志 3.从中取数据的文件有格式限制 但相对于它的速度来说,这些缺点都是可以克服的,而且你如果愿意牺牲一点速度的话,还可以做更精确的控制,甚至可以控制每一行的插入。 对与产生占用大量空间的日志的情况,我们可以采取在导入前动态更改数据库的日志方式为大容量日志记录恢复模式,这样就不会记录日志了,导入结束后再恢复原来的数据库日志记录方式。 具体的一个语句我们可以这样写: alter database taxi set RECOVERY BULK_LOGGED BULK INSERT taxi..detail FROM 'e:\out.txt' WITH ( ?? DATAFILETYPE = 'char', ?? FIELDTERMINATOR = ',', ?? ROWTERMINATOR = '\n', ?TABLOCK ) alter database taxi set RECOVERY FULL 这个语句将从e:\out.txt导出数据文件到数据库taxi的detail表中。
󰈣󰈤
 
 
 
>>返回首页<<
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有