mssql借助链接服务器进行数据快速迁移

在工作中,遇到了一个任务,需要将A数据库的数据迁移到B数据库,两个数据库的数据结构是一样的。B数据库已经在相当数量的数据了,故而不能通过复制数据库的方式来实现。

 旧方法

在对数据迁移的时候,一开始使用的是以下方法:

(1)使用SSMS的”生成和发布脚本”功能,将A数据库的数据导出成sql脚本。

脚本类似于:

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (10649, 0, N‘其他‘, N‘0000000‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (1, 2, N‘成都‘, N‘1398098‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (2, 2, N‘成都‘, N‘1360804‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (3, 2, N‘成都‘, N‘1398198‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (4, 2, N‘成都‘, N‘1398195‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (5, 2, N‘成都‘, N‘1355114‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (6, 2, N‘成都‘, N‘1390807‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (7, 2, N‘成都‘, N‘1370804‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (8, 2, N‘成都‘, N‘1398071‘)

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (9, 2, N‘成都‘, N‘1365808‘)

(2)将生成sql脚本在B数据库上执行。

问题与困难

采用这种方式应对几千条数据还是没有问题的,但是当数据达到10万的时候,速度真是慢得令人发指。

新方法

通过探索,自创了一种新方法。

(1)使用链接服务器,在B数据库所在数据库服务器上建立一个链接服务器,指向A数据库。这样一来,在B数据库中就能直接操作A数据库了。

(2)使用insert into() select form 语句,直接将A数据库中查到的数据插入到B数据库中。

将上面的脚本改造成类似于:

 1 INSERT  INTO [dbo].[region]
 2         ( [id] ,
 3           [region_id] ,
 4           [region_name] ,
 5           [region_code]
 6         )
 7         SELECT  [id] ,
 8                 [Bundling] ,
 9                 [region_id] ,
10                 [region_name] ,
11                 [region_code]
12         FROM    [Xianjie].[A].[dbo].[region]

迁移的速度得到了百倍以上的提升。哈哈

时间: 2024-08-27 20:18:12

mssql借助链接服务器进行数据快速迁移的相关文章

关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究

背景介绍 随着业务的发展.需求的变化,促使我们追求使用不同类型的数据库,充分发挥其各自特性.如果决定采用新类型的数据库,就需要将既有的数据迁移到新的数据库中.在这类需求中,将SQL Server中的数据导入到MongoDB 中显得尤为突出. 面对这种需求,大家优先想到的就是百度查找第三方工具,可惜截止目前,还没有一款公认比较满意的数据迁移工具.百度不到,大家可能就要回头自己开发了.如此,更是花费不少人力物力和宝贵的精力.甚至,由于没有理想的迁移工具,导致项目优化一再延迟. 其实,你原本不必如此!

mssql通过链接服务器连接oracle

=============================================== 2020/1/17_第1次修改                       ccb_warlock =============================================== 最近2个月在写mssql的存储过程,业务需求需要向第三方oracle写回数据,所以需要解决如何通过mssql连接oracle并写回数据. 一.安装Oracle数据访问组件ODAC 通过SSMS查看,如果Ora

mssql通过链接服务器连接其他mssql

=============================================== 2020/1/18_第1次修改                       ccb_warlock =============================================== 最近的业务实现使用存储过程,业务需求要向第三方mssql写回数据,所以这里记录下如何解决mssql连接第三方mssql并回写数据. 这里比起oracle绕了几圈,因为我安装的内容里没有MSOLEDBSQL的访

大数据快速迁移案例以及HA整合DRDB实战

01-企业级实战案例-20T以上级别数据迁移实战演示_1 01-企业级实战案例-20T以上级别数据迁移实战演示_2 02-企业级实战案例-20T以上级别数据迁移后感想 03-企业级实战案例-20T以上级别数据迁移解答学生问题 04-调试heartbeat到正常环境准备 05-heartbeat控制drbd的原理及实践深度讲解 06-heartbeat控制drbd实践及切换深度实战及结论总结_1 06-heartbeat控制drbd实践及切换深度实战及结论总结_2 06-heartbeat控制dr

如何使用SQL Server链接服务器访问DB2 Server

首先,需要安装Microsoft OLE DB Provider for DB2 下载地址:http://download.microsoft.com/download/B/B/2/BB22098A-C071-415F-9269-2EB26CEFB562/DB2OLEDB_CN.exe安装以后,菜单多出一项: 接下来,运行“数据访问工具”详细进行配置. 假设DB2的配置信息如下所示 可访问的数据库地址:jdbc:db2://10.18.50.149:50000/BPMDB用户名:db2admin

oracle 的一个大数据表 快速迁移到 Sqlserver2008数据库

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> oracle 的一个大数据表 快速迁移到 Sqlserver2008数据库 - HappyBinhaer的专栏 - 博客频道 - CSDN.NET HappyBinhaer的专栏 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯

Excel VBA宏 链接服务器 上传和下载数据

首先说明以下. 第一: 下面的 “ _" 也就是 空格下划线 在VBA中表示换行的意思:& 表示链接连个字符串的操作,注意 & 的前后是否需要空格 第二: 如果链接服务器,服务器名称,账号,密码,或者SQL语句有问题,都会报错说自动化错误. 第三: 如果刚开始运行程序就显示”未定义对象错误“,那么你就需要 VBA界面的”工程--引用“中选择”Micsoft ActiveX data Objects 2.6“ 点击确定. 1 Sub 下载数据() 2 3 Dim lastRow A

导入导出数据库数据,报错,链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。

在操作数据库中,我们难免会遇到导入和导出数据库中的数据问题,但有时用SQL语句操作时,就会报各种错误,比如下面这种错误. 错误各种找啊,最终解决,现总结原因如下: 1.未开启Ad Hoc Distributed Queries 服务: 开启方式和关闭方式如下: 1 --启用Ad Hoc Distributed Queries: 2 exec sp_configure 'show advanced options',1 3 reconfigure 4 exec sp_configure 'Ad H

SQLServer通过链接服务器远程删除数据性能问题解决

原文:SQLServer通过链接服务器远程删除数据性能问题解决 在上一遍文章中介绍了SQLServer通过链接服务器访问Oracle性能问题的解决方法,本文介绍链接服务器下远程删除SQLServer数据的性能问题解决 1. 问题发现 系统中有个功能,需要远程删除SQLServer实例的表数据,删除语句中有where条件,条件中有一个子查询. 该功能前台执行速度非常慢.所以准备调优. 下面为演示代码,未优化前如下: DELETE FROM [LINKSERVERNAME].[AdventureWo