当将一个数据库中的视图结果从一个运行 SQL Server 2008 的服务器复制到另一个新的服务器上的数据库时,以下哪种方法可能是最有效的?
1. 使用带有 OLE DB 源/目标的 SSIS 数据流任务
2. 自定义脚本
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批量插入
我不认为这和使用自定义脚本有什么不同,只是没有加上只适用于表/视图而不是存储过程的固定性。
我意识到这不完全是一对一的比较,因为各种选项都提供了额外的日志记录和错误处理等级,但假设我不需要任何日志记录来尝试使比较尽可能公平。