- 浏览: 1071568 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
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.导入导出的数据
1。导入数据的目标表必须存在。导出数据的目标文件如果存在,则将重写上面的内容。如果不存在,则BCP自动创建文件
2。数据文件中的数据必须是字符格式或是先前由bcp工具生成的格式(本机格式)
3。必须对相应的表拥有足够的权限
4。数据导入导出工具的简单用法
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
发表评论
-
sqlserve2000 关于100万数据查询优化
2014-11-23 21:09 1076探讨怎么在有着1000万条数据的ms sql server数据 ... -
sqlserver2000触发器学习
2014-10-27 07:09 8381、 Sql代码 createtri ... -
sqlserver2008 评估到期解决方案
2012-03-15 08:44 1705和Visual Studio 2008一样,从官网下载SQL ... -
sqlserver 2008创建表分区
2011-11-24 16:31 912见附件 -
sqlserver 登陆企业管理器需要输入密码
2011-11-14 07:59 1148附件中有详细说明 -
JAVA 连接SQLSERVER2008步骤
2011-08-31 08:54 6640使用JDBC连接SQL SERVER 2008,很多人都在 ... -
sqlserver2008导出数据(新增)
2011-05-09 08:13 1728这个功能是sqlserver2000没有的。可以将数据脚本导出 ... -
安装完数据库以后,测试连接,提示端口错误的问题
2011-05-08 21:24 1733java.sql.SQLException: [Microso ... -
安装sqlserver的时候提示挂起操作,必须重启计算机的问题
2011-05-08 21:22 1723安装时提示说:“以前的某个文件已在安装计算机上创建挂起的文件操 ... -
SQL Server 2000 Enterprise Edition 日志传送温备方案
2011-02-20 09:44 1790'SQL Server 2000 Enterprise Edi ... -
通过存储过程直接访问服务器URL
2011-02-17 11:11 1511CREATE procedure ... -
sqlserver 常用函数大全
2011-02-14 17:31 1117sqlserver 常用函数大全 -
sqlserver 存储过程,函数,视图实例
2011-02-14 16:49 1159sqlserver 存储过程,函数,视图实例 -
对于批量删除某张表数据的做法技巧
2010-12-09 15:33 1170通过有JSP页面穿到存储过程中一连串的ID值,并且以,隔开。我 ... -
sql server 查询某个数据库中所有的任务执行状态
2010-12-06 11:25 4036xp_sqlagent_enum_jobs 参数: xp_ ... -
数据库表的转移心得体会和经验分享
2010-10-22 15:00 948开始设计一张表的时候,由于该表数据量逐渐增多。达到百万或千万的 ... -
一个关于查询性能的问题,在查询时间的时候是否应该用convert
2010-10-22 14:53 1120今天在做数据库表转移的时候,A表转移到B表。要将A表的2010 ... -
编写的一个存储过程,来检测数据库死锁进程
2010-10-19 09:14 1240/*--------------------------- ... -
探讨SQL Server中Case 的不同用法
2010-10-18 08:34 1169CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可 ... -
查找表中的重复数据
2010-08-27 09:32 998select * from person where ...
相关推荐
总的来说,通过使用C#的数据流技术,我们可以高效地处理大容量的Excel数据,同时避免对内存资源的过度占用。结合适当的库,如`Microsoft.Office.Interop.Excel`或第三方库,可以进一步简化和优化这一过程。
- 使用命令行工具如bcp进行批量数据导入导出。 - 使用第三方备份软件,如Nimble Storage的InfoSight、Quest Software的Toad等。 7. 数据格式转换与处理: - 在导入导出数据时,可能需要将数据从一种格式转换为另...
这种方式非常灵活,支持多种类型的数据库,可以在不同的 SQL Server 数据库之间进行数据导入导出。 使用 Transact-SQL 时,可以使用 SELECT INTO FROM 和 INSERT INTO 语句来实现数据的导入和导出。SELECT INTO ...
在IT行业中,Excel导入导出性能优化是一个常见且重要的议题,尤其对于处理大量数据的应用程序。Excel文件格式广泛用于数据存储和分析,但其导入和导出操作可能会对系统性能产生显著影响,尤其是在高并发环境下。以下...
在进行数据导入导出时,确保设备和PC都安装了最新的安全更新,以防止病毒或恶意软件的入侵。同时,对重要数据进行定期备份,以防意外丢失。 总之,Windows Mobile与PC之间的数据导入导出是通过文件复制、同步软件和...
本手册详细介绍了Oracle数据库数据导入导出的各种方法及其应用场景,对于数据处理人员来说是非常实用的参考资料。无论是小批量还是大批量的数据处理,都有相应的解决方案和技术建议。通过对这些内容的学习和实践,...
主要讲四个示例的使用:导出(out),导入(in),查询导出(queryout),导出格式化(-f)文件。 示例1:导出示例数据库AdventureWorks整个表currency 或视图,使用SQL连接 代码如下:bcp AdventureWorks.sales....
它可以处理大容量的数据,快速地将数据导入或导出到各种格式的文件中。 SQL Server 数据转换服务是一种功能强大且实用的工具,它可以帮助数据库管理员解决各种数据相关的问题。如果您需要将数据导入或导出到 SQL ...
同时,大容量数据的导入导出可能对系统性能造成影响,因此需要合理规划,如分批处理、在低峰时段操作等。 总之,"sql导入导出excel、access工具"是数据库管理员和数据分析师常用的实用工具,它们帮助我们在不同系统...
以下是关于SQL数据导入和导出的一些关键知识点: 1. **数据导入**:数据导入是指将数据从外部文件(如CSV、Excel、XML等)或另一个数据库系统转移到SQL数据库中。在SQL Server中,可以使用`bcp`命令行工具或`...
而`Data Pump`则提供了更高效、更灵活的数据导入导出能力,支持大容量数据操作。 1. **SQL*Loader**:SQL*Loader通过控制文件定义数据格式,然后读取数据文件并将数据加载到数据库表中。它的主要步骤包括: - 创建...
在实际使用中,用户可以通过图形化界面创建和配置这些组件,构建复杂的数据导入导出流程。1.2版本的DTS工具不仅增强了性能,还可能提供了更友好的用户界面和更丰富的错误处理机制,使得非技术背景的用户也能相对容易...
对于大容量数据的导入导出,Oracle Data Pump提供了并行选项,可以通过`parallel`参数设置并行度,加快操作速度。但需要注意,过多的并行度可能导致服务器资源紧张,需要根据硬件和数据库负载合理设置。 在实际应用...
在IT行业中,尤其是在开发大型应用程序时,处理大容量数据是一项挑战。C#作为一种强大的编程语言,提供了多种策略来高效地管理大数据并优化多线程应用,以提高性能和用户体验。以下将详细介绍“C#处理大容量数据,及...
同时,合理安排数据导入的时间,避免在数据库系统高峰期进行大容量操作,可以减少对业务的影响。 最后,为确保数据的一致性和完整性,应实施事务管理。在导入导出过程中,使用BEGIN、COMMIT或ROLLBACK语句,确保在...
- 数据导入导出过程中,要关注磁盘空间、表空间容量以及数据文件的大小,避免空间不足导致的导入失败。 - 对于大型数据库,可能需要考虑分段导出和导入,以提高效率并降低资源消耗。 通过以上步骤,我们可以成功...
数据库的导入导出是数据库管理中的重要操作,它允许用户在不同的数据库系统间传输数据,或者在同一个系统内的不同数据库之间进行数据迁移。这通常涉及到数据的格式转换和数据完整性检查,确保数据在导入和导出过程中...
大容量的数据导出可能耗时较长,并且需要足够的磁盘空间来保存脚本文件。同时,如果涉及敏感数据,必须确保导出过程符合数据保护和隐私政策。 总的来说,SQL Server的“生成脚本”功能提供了灵活的导出选项,满足...
例如,使用`SqlBulkCopy`进行大容量数据导入通常比逐一插入更快。对于导出,一次性写入整个文件而不是逐行写入可以提高效率。 5. **错误处理**: 在实现这些功能时,确保添加适当的错误处理机制,例如使用`try-...