将视图结果从一台服务器上的数据库复制到新服务器上的另一个数据库(均运行 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 批量插入
我看不出这与使用自定义脚本有什么不同,但没有增加的不灵活性,它只适用于表/视图而不适用于存储过程。
我意识到这与类似的比较不太一样,因为各种选项都有额外的日志记录和错误处理等级别,但假设我根本不需要日志记录来尝试使比赛场地尽可能均匀。