`
xuyelongjava
  • 浏览: 38246 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

阅读更多
这篇论坛文章(赛迪网技术社区)详细讲解了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

分享到:
评论

相关推荐

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

    ### SQL Server 海量数据导入的最快方法 在IT领域,特别是数据库管理方面,如何高效地处理和导入大规模数据集是常见的挑战之一。对于SQL Server而言,如何快速、有效地将大量数据导入数据库成为了一个重要的议题。...

    海量数据导入与导出MATLAB的有效方法.zip

    在MATLAB环境中,处理大规模数据是一项挑战,但通过掌握正确的导入和导出策略,可以显著提高效率并优化内存管理。本教程将详细讲解如何高效地处理海量数据。 首先,了解MATLAB的数据导入函数至关重要。`readtable`...

    批量导入数据,大数据导入

    SQL(Structured Query Language)是用于管理关系数据库的标准语言,提供了多种批量导入数据的方法。 1. **使用INSERT语句**:这是最基础的方式,但当数据量大时,效率较低。例如: ```sql INSERT INTO table_...

    基于SQL*Loader的海量数据装载方案优化.pdf

    在数据库管理领域,高效的数据导入和装载是至关重要的,特别是在处理海量数据时。SQL*Loader是Oracle数据库系统中一个强大的工具,它能够快速地将大量数据从文本文件加载到数据库表中。本文档将深入探讨如何针对大...

    sql批量写入数据

    在SQL Server数据库管理中,批量写入数据是一项重要的任务,特别是在处理海量数据时,效率尤为重要。批量插入可以显著提高性能,减少与数据库的交互次数,从而优化系统资源的使用。以下将详细介绍如何实现“sql批量...

    ASP EXCEL导入SQL

    它提供了关于REST最好的支持,也是当今应用REST最成功的一个软件开发框架。Rails框架(从版本1.2.x起)成为了第一个引入REST作为核心思想的主流网络软件开发框架。在Rails框架的充分利用了REST软件架构之后,人们更加...

    如何在SQLSERVER中快速有条件删除海量数据

    如何在SQLSERVER中快速有条件删除海量数据 在SQL Server中删除大量数据是一项复杂的任务,需要考虑多种因素,包括性能、日志记录、事务处理等。在本节中,我们将讨论如何在SQL Server中快速有条件删除海量数据,並...

    SqlBulkCopy批量插入海量数据

    此时,C#提供了一个高效工具——SqlBulkCopy,用于快速批量地将数据从一个数据源(如DataTable或IDataReader)复制到SQL Server数据库中。SqlBulkCopy类提供了类似数据库大容量加载的功能,它能显著提高数据插入的...

    C#中海量数据的批量插入和更新[顶].pdf

    总之,虽然C#的ADO.NET没有像JDBC那样提供直接的批量操作API,但通过巧妙地利用现有的组件和方法,我们可以有效地处理海量数据的插入和更新。关键在于理解数据访问层的内部工作原理,以及如何通过优化策略来提高处理...

    图书管理系统SQL版

    系统利用SQL的查询能力,可以迅速从海量数据中提取所需信息,提供给用户清晰的查询结果。 过期提示功能是提高图书馆服务质量和资源利用率的重要手段。系统会根据预设的借阅期限,自动检测即将逾期的图书,并通过...

    sql server的具体介绍.doc

    这意味着无论是在执行复杂的查询操作还是进行大规模的数据导入导出时,SQL Server 都能提供卓越的性能。此外,它还支持多种索引类型,如聚集索引、非聚集索引、全文索引等,这些索引能够显著加快数据检索的速度。 #...

    基于hadoop生态搭建的电商数据仓库,整体功能架构包含数据采集、数仓搭建、数据导出、数据可视化等.zip

    在当前的数字化时代,电商企业面临着海量数据的处理挑战,而Hadoop生态系统提供了一种有效的方式来管理和分析这些数据。本文将深入探讨如何基于Hadoop生态搭建电商数据仓库,包括数据采集、数仓搭建、数据导出和数据...

    几种从数据库读取数据生成excel文件的比较

    本文将讨论三种从数据库读取数据并生成Excel文件的方法,以VB6.0为编程环境,配合SQL Server 2000和Excel 2000进行测试。测试表包含10322条记录,9个字段。 1. **使用CopyFromRecordset方法**: 这种方法是通过...

    应用Profiler优化SQL Server数据库系统.pdf

    本文介绍的主题是应用Profiler优化SQL Server数据库系统,其中涉及到了SQL Server Profiler工具的使用、Trace文件的性能分析以及使用Read80trace工具结合自定义存储过程进行数据分析的方法。文章指出,在数据库系统...

    MicrosoftSQLServer中的关系型数据仓库分区策略

    分区的主要目的是将大型表或索引分解成更小、更易管理的部分,以提高查询效率和维护性能,尤其对于处理海量历史数据的数据仓库环境来说至关重要。 **分区的好处** 1. **查询性能提升**:通过分区,可以将查询范围...

    Oracle Sql 优化

    然而,当系统投入实际应用,尤其是面对海量数据时,SQL语句的优化就显得尤为重要。优化后的SQL语句能够显著提升系统的响应速度和整体性能,对于大型数据库而言,优化前后性能差异可达数百倍,直接影响到用户体验和...

    数据处理代码_Python数据处理_源码

    7. **数据读写**:Pandas提供了多种数据格式的读写接口,如CSV、Excel、SQL数据库等,便于数据导入导出。 **Java数据处理** 虽然标题侧重于Python,但Java在数据处理领域也有广泛应用,特别是对于大规模数据处理:...

    深入解析数据分析利器:常用工具详解

    通过对海量数据进行深入分析,可以提取出有价值的信息和洞见,为企业的战略规划、市场营销、客户服务等多个方面提供有力的支持。本文将详细介绍几种常用的数据分析工具,包括它们的特点、应用场景以及如何有效地利用...

Global site tag (gtag.js) - Google Analytics