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

 更新时间:2008年12月08日 12:26:36   作者:  
这篇论坛文章(赛迪网技术社区)详细讲解了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表中。

相关文章

  • SqlServer 垂直分表(减少程序改动)

    SqlServer 垂直分表(减少程序改动)

    当单表数据太多时,我们可以水平划分,参考 SqlServer 分区视图实现水平分表 ,水平划分可以提高表的一些性能
    2021-04-04
  • SQL Server DATEDIFF() 函数用法

    SQL Server DATEDIFF() 函数用法

    这篇文章主要介绍了SQL Server DATEDIFF() 函数的定义和用法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • SQL Server中查询最近一条记录的三种方法

    SQL Server中查询最近一条记录的三种方法

    在使用SQL Server数据库时,有时我们需要查询表中的最近一条记录,这可能涉及到查找表中的最新数据、最新订单、或者按时间戳获取最近的更新等情况,本文将介绍几种常用的查询方法来实现这个目标,需要的朋友可以参考下
    2024-09-09
  • Windows2012配置SQLServer2014AlwaysOn的图解

    Windows2012配置SQLServer2014AlwaysOn的图解

    SQLserver 2014 AlwaysOn增强了原有的数据库镜像功能,使得先前的单一数据库故障转移变成以组(多个数据)为单位的故障转移。接下来通过本文给大家介绍Windows2012配置SQLServer2014AlwaysOn的方法,感兴趣的朋友一起学习吧
    2016-04-04
  • Sql Server "用户登录失败,错误编18456"的解决过程

    Sql Server "用户登录失败,错误编18456"的解决过程

    在我们使用数据库的时候,偶尔会遇到一些登录上的错误提示,下面这篇文章主要给大家介绍了关于Sql Server "用户登录失败,错误编18456"的解决过程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • SQL SERVER数据库收缩日志的实现步骤

    SQL SERVER数据库收缩日志的实现步骤

    这篇文章主要介绍了SQL SERVER数据库收缩日志的实现步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2024-04-04
  • SQL Server中的T-SQL的基本对象

    SQL Server中的T-SQL的基本对象

    SQL的基本对象主要有常量,表示符,分隔符,保留关键字。
    2010-05-05
  • sql server卡慢问题定位与排查过程

    sql server卡慢问题定位与排查过程

    做过运维的朋友们都可能会遇到,服务器应用程序运行慢的问题,下面这篇文章主要给大家介绍了关于sql server卡慢问题定位与排查过程的相关资料,需要的朋友可以参考下
    2023-03-03
  • Win10 64位安装个人版SQL2000图文教程

    Win10 64位安装个人版SQL2000图文教程

    这篇文章主要为大家详细介绍了Win10 64位安装个人版SQL2000图文教程,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • SQL Server清除事务日志的两种方式

    SQL Server清除事务日志的两种方式

    事务日志是一种记录每次数据库修改操作的日志,它记录了每一次事务修改的详细日志,但磁盘容量始终有限制,本文主要介绍了SQL Server清除事务日志的两种方式,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10

最新评论