C# SQL Server SMO TransferData()运行缓慢
我正在跟踪,下面的代码确实有效,但运行大约需要90秒。数据库模式只有不到10个(相当简单的)表。我不知道为什么要花这么长时间。关于如何调试这个有什么建议吗C# SQL Server SMO TransferData()运行缓慢,c#,sql-server,schema,C#,Sql Server,Schema,我正在跟踪,下面的代码确实有效,但运行大约需要90秒。数据库模式只有不到10个(相当简单的)表。我不知道为什么要花这么长时间。关于如何调试这个有什么建议吗 var host = "192.168..."; var user = "username"; var pass = "password"; var srcDbName = "srcDbName"; var dstDbName = "dstDbName"; var server = new Server(new ServerConnecti
var host = "192.168...";
var user = "username";
var pass = "password";
var srcDbName = "srcDbName";
var dstDbName = "dstDbName";
var server = new Server(new ServerConnection(host, user, pass));
var srcDb = server.Databases[srcDbName];
var dstDb = new Database(server, dstDbName);
dstDb.Create();
var transfer = new Transfer(srcDb);
transfer.CopyAllTables = true;
transfer.Options.DriAll = true;
transfer.Options.ContinueScriptingOnError = false;
transfer.DestinationDatabase = dstDbName;
transfer.DestinationServer = server.Name;
transfer.DestinationLoginSecure = false;
transfer.DestinationLogin = user;
transfer.DestinationPassword = pass;
transfer.TransferData();
我认为你应该把这段代码放在一边。你不能改进它。正如我从问题中了解到的,您希望将表/模式从一个数据库转移到另一个数据库 以下是我的建议: 链接服务器 从SQL 2000中,您应该能够作为链接服务器直接连接到其他数据库。在pros列中,如果您不具备任何其他技术技能(如DTS或SSI),则这种直接访问可能很容易使用,但初始设置可能很复杂,并且可能存在安全问题 DTS DTS是用SQL 2000打包的,是为这类任务而设计的。如果编写正确,DTS包可以具有良好的错误处理能力,并且可以重新命名/重用 SSI SSIS实际上与SQL 2005及更高版本打包在一起,但您可以将其连接到其他数据库。它基本上是DTS的更好版本