工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论、补充。 00.建立测试环境 01.使用SQL Server Import and Export Tool 02.使用Generate Scripts 03.使用BCP 04.使用SqlBulkCopy 0
工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论、补充。
00.建立测试环境
01.使用SQL Server Import and Export Tool
02.使用Generate Scripts
03.使用BCP
04.使用SqlBulkCopy
05.使用Linked Server进行数据迁移
06.使用RedGate的SQL Data Compare
07.结果对比
可以先看下测试的结果
00.建立测试环境
建立一个测试的环境,一个数据源数据库,香港服务器,版本为SQL Server 2008,一个目标数据库,版本为SQL Server 2000。
实验环境如下图所示,源数据库使用语句生成了100万的测试数据。
建立测试表并生成100万的测试数据
IF OBJECT_ID() IS NOT NULL DROP TABLE DEMOTABLE GO CREATE TABLE DEMOTABLE ( COL1 VARCHAR(50) , COL2 VARCHAR(50) , COL3 VARCHAR(50) ) INSERT INTO DEMOTABLE SELECT TOP 1000000 NEWID() , NEWID() , NEWID() FROM MASTER..SPT_VALUES T1 INNER JOIN MASTER..SPT_VALUES T2 ON 1 = 1 INNER JOIN MASTER..SPT_VALUES T3 ON 1 = 1
01.使用SQL Server Import and Export Tool
使用SQL Server Import and Export Tool进行数据的导出,也可以在目标数据库端使用Import进行导入,这部分套件也是SSIS的一部分。
在源数据库上右键,选择Task -> Export Data
分别填写源数据库和目标数据库的连接信息。
选择“copy data from one or more tables or views”
选择需要导数据的表,并且可以编辑列的Mapping关系。
可以选择立即执行或者存储为SSIS的包,用于执行计划等其他用途。
这里我们选择立即执行。
注意导入的时候如果遇到如下的错误
Error 0xc02020f4: Data Flow Task: The column "Tel" cannot be processed because more than one code page (936 and 1252) are specified for it.
(SQL Server Import and Export Wizard)
是因为两边的数据库的Collation设置不一样造成的,需要设置同样的Collation。
02.使用Generate Scripts生成脚本在源数据库上右键,选择Task -> Geneate Scripts...
配置相关信息,注意选择数据库的版本并将Script Data设置成True。
这里需要注意,美国空间,因为有100万的数据,香港空间,所以导出的SQL文件就有400多M,所以用SQL Server Management Studio是打不开的。
所以只能使用sqlcmd执行。
sqlcmd语句
C:\>sqlcmd -i export.sql -d ExportDataDemo_Destination -s 192.168.21.165 -U sa -P 1234567890
用时约28分钟
03.使用BCP进行导出导入
在尝试了前面两个效率低下的工具之后,我们终于开始尝试下SQL Server中专门用于导数据的工具:BCP。
关于BCP的详细用法可以参见MSDN的帮助文档。
我们先使用BCP导出数据。
-U和-P后面分别为数据库的用户名和密码。
我们可以看到100万的数据导出仅用了1.8秒。
现在我们再使用BCP进行导入。
执行后发现,导入数据使用了20.8秒,还是很快的。
.NET Framework 2.0中增加的SqlBulkCopy类可以进行高效的数据迁移动作,这也为代码实现数据迁移提供了接口。
并且SqlBulkCopy类提供了修改字段Mapping关系的方法ColumnMappings。
使用SqlBulkCopy类进行数据迁移

mysqlviewshavelimitations : 1) 그들은 upportallsqloperations, datamanipulation throughviewswithjoinsorbqueries를 제한하지 않습니다

적절한 usermanagementInmysqliscrucialforenhancingsecurityandensuringfefficientDatabaseOperation.1) USECREATEUSERTOWDDUSERS,@'localHost'or@'%'.

mysqldoes notimposeahardlimitontriggers, butpracticalfactorsdeteirefectiveuse : 1) ServerConfigurationimpactStriggerManagement; 2) 복잡한 트리거 스케일 스케일 사이드로드; 3) argertableSlowtriggerTriggerPerformance; 4) High ConconcercencyCancaUspriggerContention; 5) m

예, It 'safetostoreBlobdatainmysql, butconsidertheStefactors : 1) StoragesPace : BlobScanconSumeSignificantspace, 잠재적으로 증가하는 CostsandSlownperformance

PHP 웹 인터페이스를 통해 MySQL 사용자를 추가하면 MySQLI 확장 기능을 사용할 수 있습니다. 단계는 다음과 같습니다. 1. MySQL 데이터베이스에 연결하고 MySQLI 확장자를 사용하십시오. 2. 사용자를 생성하고 CreateUser 문을 사용하고 Password () 함수를 사용하여 암호를 암호화하십시오. 3. SQL 주입 방지 및 MySQLI_REAL_ESCAPE_STRING () 함수를 사용하여 사용자 입력을 처리하십시오. 4. 새 사용자에게 권한을 할당하고 보조금 명세서를 사용하십시오.

mysql'sblobissuilableforstoringbinarydatawithinareldatabase, whilenosqloptionslikemongodb, redis, and cassandraofferflexible, scalablesolutionsforunstuctureddata.blobissimplerbutcanslowwownperformance를 사용하는 것들보업 betterscal randaysand

TOADDAUSERINMYSQL, 사용 : CreateUser'UserName '@'host'IdentifiedBy'Password '; 여기서'showTodoitseciRely : 1) ChoosetheHostCareLyTocon trolaccess.2) setResourcelimitswithOptionslikemax_queries_per_hour.3) Usestrong, iriquepasswords.4) enforcessl/tlsconnectionswith

toavoidcommonmistakeswithstringdatatypesinmysql, stroundStringTypenuances, chooseTherightType, andManageEncodingAndCollationSettingSefectively.1) usecharforfixed-lengthstrings, varcharvariable-length, andtext/blobforlargerdata.2) setcarcatter


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

드림위버 CS6
시각적 웹 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)