【发布时间】:2012-07-09 16:01:13
【问题描述】:
将视图结果从一台服务器上的数据库复制到新服务器上的另一个数据库(均运行 SQL Server 2008)时,以下哪种方法可能最有效?
1.具有 OLE DB 源/目标的 SSIS 数据流任务
2。自定义脚本
例如
using (SqlConnection connection = new SqlConnection(sourceConnectionString))
using (SqlCommand command = new SqlCommand(sourceQuery, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnectionString))
{
bulkCopy.DestinationTableName = destinationTable;
//Any Column mapping required
bulkCopy.WriteToServer(reader);
}
}
}
3. SSIS 批量插入
我看不出这与使用自定义脚本有什么不同,但没有增加的不灵活,它只适用于表/视图而不适用于存储过程。
我意识到这与同类比较不太相似,因为各种选项都提供了额外级别的日志记录和错误处理等,但假设我根本不需要日志记录来尝试使比赛场地尽可能均匀.
【问题讨论】:
-
“最高效”是什么意思?最短的开发时间?最快的执行?最少的代码行?最低的 CPU、RAM 或 I/O 使用率?最容易调试?最容易维护?
-
对不起,我指的是执行效率(最快的时间和最低的 CPU、RAM 和 IO 使用)。
标签: c# sql-server-2008 ssis