/*----------------------------------------------------------------
-- Author :feixianxxx(poofly)
-- Date :2010-03-29 14:04:14
-- Version:
-- Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
Jul 9 2008 14:43:34
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Evaluation Edition on Windows NT 6.1 <X86> (Build 7600: )
----------------------------------------------------------------*/
1。关于大容量数据导入导出的一些方法
SQL SERVER提供多种工具用于各种数据源的数据导入导出,这些数据源包括本文文件、ODBC数据源、OLE DB数据源、ASCII文本文件和EXCEL电子表格。
2.常用工具
DTS:数据转换服务导入导出向导或者DTS设计器创建DTS包
使用SQL SERVER复制发布数据
BCP命令提示实用工具实现SQL SERVER实例和数据文件之间的数据导入导出
BULK INSERT实现从数据文件导入数据到SQL SERVER实例
分布式查询实现从一个数据源选择数据插入到SQL SERVER实例
SELECT INTO 语句插入数据表
3.导入导出的数据
- 导入数据的目标表必须存在。导出数据的目标文件如果存在,则将重写上面的内容。如果不存在,则BCP自动创建文件
- 数据文件中的数据必须是字符格式或是先前由bcp工具生成的格式(本机格式)
- 必须对相应的表拥有足够的权限
- 数据导入导出工具的简单用法
4.数据导入导出工具的简单用法
a.DTS
DTS是一组图形工具和可编程对象,是开发者可以将取自完全的不同源的数据析取、转换并合并成一个或者多个。
它的特点就是可以融合完全不同源的数据源 这在企业改进中应用很大 。
这里涉及到一个DTS包,它是一个有组织的链接、DTS任务、DTS转换和工作流约束的集合。
关于DTS的操作请参看相关具体文献。
b.BCP
它常用于将大量的数据从另外的程序转移到SQL SERVER表中。当然也可以用于将表中数据传输到数据文件中。
下面是一些BCP的简单用法(关于很多的选项使用看相关文档)
--前序,开启xp_cmdshell
--关于xp_cmdshell的一些知识请看http://blog.csdn.net/feixianxxx/archive/2009/08/14/4445603.aspx
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
--环境
create table test
(
id int,
value varchar(100)
)
go
insert test values(1,'s1')
insert test values(2,'s2')
insert test values(3,'s3')
insert test values(4,'s4')
go
--1将表的数据导出到TEXT.txt文件中
exec master..xp_cmdshell 'bcp tempdb.dbo.test out e:\test.txt -c -Usa -P123456'
--如果是WINDOWS身份直接xec master..xp_cmdshell 'bcp tempdb.dbo.test out e:\test.txt -T -c'
--2将TEXT.txt文件中的数据复制到test1表
select * into test1 from test where 1=2
exec master..xp_cmdshell 'bcp tempdb.dbo.test1 in e:\test.txt -c -Usa -P123456'
select * from test1
--3将TEST表的ID字段复制到TEXT.txt中
exec master..xp_cmdshell 'bcp "SELECT id FROM tempdb.dbo.test" queryout e:\test.dat -T -c'
--4将test表中的第一行移动到text.txt中
exec master..xp_cmdshell 'bcp "SELECT top 1 * from tempdb.dbo.test " queryout e:\test.txt -c -Usa -P123456'
--关闭xp_cmdshell
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;
c.BULK INSERT
它只能用于数据导入到SQL SERVER实例中,但是我们一般会选择使用它,因为它比BCP使用工具快。
小例子:
--truncate table test
BULK INSERT tempdb..test
FROM 'E:\test.txt'
WITH
(
FIELDTERMINATOR =',',--字段分割符号
ROWTERMINATOR ='\n'--换行符号
)
select * from test
/*
id value
----------- -----------
1 s1
2 asds
3 sadsa
100 2asda*/
ps:只写最简单用法,具体参数很多,参考MSDN
d.分布式查询
--包含访问OLE DB 数据源中的远程数据所需的全部连接信息。
--当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用OLE DB 连接并访问远程数据的一次性的临时方法。
--对于较频繁引用OLE DB 数据源的情况,请改为使用链接服务器。
--A.将OPENROWSET 与SELECT 和SQL Server Native Client OLE DB 访问接口一起使用(MSDN)
以下示例使用 SQL Server Native Client OLE DB 访问接口访问 TEST.A 表,该表位于远程服务器 SERVER1 上的 POOFLY 数据库中.
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=SERVER1;Trusted_Connection=yes;',
'SELECT GroupName, Name, DepartmentID
FROM POOFLY.TEST.A
ORDER BY GroupName, Name') AS a;
--B. 使用Microsoft OLE DB Provider for Jet(MSDN)
以下示例通过 Microsoft OLE DB Provider for Jet 访问 Microsoft Access Northwind 数据库中的 Customers 表。
SELECT CustomerID, CompanyName
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';
'admin';'',Customers)
GO
--c.使用OPENROWSET 将文件数据大容量插入varchar(max) 列中
/*
为了导入大型对象数据,OPENROWSET BULK 子句支持三个选项,允许用户以单行或单列行集导入数据文件的内容。
你可以指定其中一个大型对象选项,而不是使用格式化文件。
大型对象选项包括:
SINGLE_BLOB
以单行读取data_file 的内容,以varbinary(max) 类型的单列行集返回内容。
SINGLE_CLOB
以字符读取指定数据文件的内容,以varchar(max) 类型的单行、单列行集返回内容,使用的是当前数据库的排序规则,例如文本或Microsoft Word 文档。
SINGLE_NCLOB
以Unicode 读取指定数据文件的内容,以nvarchar(max) 类型的单行、单列行集返回内容,并使用当前数据库的排序规则。
*/
以下示例创建一个用于演示的小型表,并将名为 Text1.txt 的文件中的文件数据插入 varchar(max) 列中。
CREATE TABLE my_Test(Document varchar(max))
GO
INSERT INTO my_Test
select * FROM OPENROWSET(BULK N'E:\test.txt', SINGLE_CLOB) AS Document
GO
select * from my_Test
/*
Document
-------------------------------------------------------
ASDSADASDSADSADSAFKJHFAS HKLASJHASHBKDSAHKJDHSAKJDHSAKDHSAKDHSA
*/
e.SELECT INTO
关于这个的用法 相信大家都很清楚了 我就不说明了。
5。优化导入导出数据的一些方法
1。使用最小日志记录:
a.恢复模式是简单模式或者大容量日志记录模式。如果你是完整模式,可以在进行操作前改成大容量日志模式,插入后改回来
b.目的表没有触发器,没有索引,指定了TABLOCK
2。将数据从多个客户端并行导入到单个表:
a.如果是完整恢复模式,改成大容量日志模式
b.指定了TABLOCK
c.表上没有索引
3。使用批处理:通过设置BCP或者BULK INSERT的相关选项,是用于可以指定在操作过程中发给SQL的每个批处理的行数。
4。禁用触发器和约束:默认情况下是禁用的。如果要检查,可以在复制完成后进行一次更新操作(当然值不可以变)
5。对数据文件中的数据排序:通过设置ORDER提示,提高性能。默认数据文件是不排序的。
6。控制锁定行为:指定大容量操作过程获得一个大容量更新表级锁,这样可以减少表上锁的争夺。
7。回避DEFAULT:通过设置相关选项,回避在复制数据到表中时,对有DEFAULT的列插入默认值,而是改成在列中值为NULL。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/feixianxxx/archive/2010/03/29/5427485.aspx
分享到:
相关推荐
对于大数据量的导入导出,可以采用分批处理、缓存策略等方法提高性能。同时,根据业务需求,可能需要设计合理的数据结构和算法。 8. **测试与验证**: 在实际应用中,导入导出功能的测试不可忽视。编写单元测试和...
数据导入导出工具是IT行业中一个非常重要的工具,主要用于在不同的数据库系统、应用程序或文件格式之间传输和转换数据。在日常的数据管理工作中,无论是数据分析、数据迁移还是数据备份,都需要用到这类工具。下面...
### Oracle大数据量数据导入导出的关键知识点 #### 一、Oracle大数据量数据导出操作 在Oracle数据库中,处理大数据量的数据导出通常涉及到优化查询性能、减少资源消耗以及确保数据完整性等方面。以下是对给定文件...
Redis 数据导入导出和数据迁移是 Redis 管理中的重要环节,对于数据备份、故障恢复、集群扩展等场景有着至关重要的作用。本文将详细解析 Redis 数据导入导出的4种方法。 首先,我们来看第一种方法:使用 AOF...
【phpcms数据导入导出模块】是针对phpcms V9内容管理系统的一个功能扩展,主要用于方便网站管理员进行数据的批量处理。这个模块的核心在于提供了一种高效、灵活的方式来管理和迁移数据,尤其是在大型网站或者需要...
在IT行业中,数据导入导出Excel是一项常见的任务,特别是在数据分析、报表生成以及系统间的数据交换等领域。本项目可能提供了一种实用的方法来处理这类需求。下面将详细解释相关的知识点。 首先,我们要理解什么是...
在IT领域,数据的导入与导出是日常工作中不可或缺的一部分。尤其是在企业级应用系统中,如NC65这样的企业管理软件,UAP(通用应用平台)提供了标准化的导入导出功能,使得数据管理更为高效便捷。本文将深入解析UAP...
Hue数据导入导出 一套流程的开发使用 旨在帮助大家v e
ODBC 数据源配置与数据导入导出 ODBC(Open Database Connectivity)是一种规范,用于提供统一的访问多种数据库管理系统的接口。ODBC 数据源配置是指配置 ODBC 连接数据库的过程,包括配置 Oracle 数据源和 SQL ...
【海湾GM9200 CRT数据导入导出方法详解】 海湾GM9200是一款专业的消防报警主机,配备有CRT(Cathode Ray Tube)图形显示器,能够清晰地展示消防系统的状态和报警信息。在日常操作和维护中,数据的导入导出功能显得...
通过此功能,用户可以轻松地将外部数据(如Excel文件)导入系统内部,或将系统内的数据导出至外部文件,极大地提高了工作效率并简化了数据处理流程。 #### 二、基础知识简介 在深入探讨具体实现之前,我们需要了解...
"普元导入导出"是普元信息公司提供的一个功能模块,主要应用于数据的批量导入与导出,尤其适用于与Excel文件的交互。这个功能在数据管理、数据分析以及日常业务处理中十分常见,因为它能够方便地将大量结构化数据在...
T5导入导出工具是一款好用的数据导入导出工具。这款工具适用于T5无线盘点机,可以帮助用户实现导入导出商品信息配置、导出盘点配置、导出数据库盘点配置等功能。还有详细的使用说明,感兴趣的朋友千万不要错过了。 ...
以上就是关于“Excel数据导入导出”以及结合Oracle存储过程和JXL库进行操作的基本知识。实践中,还需要考虑性能优化、数据一致性、错误恢复等方面,以提高数据处理的效率和准确性。同时,随着技术的发展,现在还有...
mysql数据库大数据量导入导出多种方法,该文档详述SELECT * INTO和mysqldump导出方法。导入方法中包括导入sql,txt文件和load data三种方法
在本文档中,我们将详细讨论PTC Windchill数据导入导出(DataLoad)的过程,特别是在11.0 M030版本中的具体应用。文档中不仅包含了操作步骤和最佳实践的指导,还详细介绍了数据加载的工具使用以及如何处理特定的数据...
- 数据导入时需考虑内存管理,防止因大文件导致的内存溢出。 - 导出时,需要确保用户有写入外部存储的权限,特别是针对Android 6.0及以上版本的应用。 7. **扩展应用** 除了基本的导入和导出,开发者还可以利用...
3. **数据导入导出功能**:JavaTools的核心功能是数据导入和导出,它可以读取CSV、Excel、XML、JSON等格式的文件,并将数据导入到数据库中,同时也可以将数据库中的数据导出为这些文件格式,方便数据交换和备份。...
vbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入导出.rarvbEXCEL数据导入...