select into/bulkcopy用法
一、背景
如何提升批量插入效率,各位看官,瞧好了!
exec sys.sp_dboption '数据库名','select into/bulkcopy',true/false在系统存储过程把参数中的true/false 变成了full/bulk_logged恢复模式.
恢复模式是simple 时上述命令不起作用;
SELECT...INTO 的日志记录量取决于对数据库有效的恢复模式。在简单恢复模式或大容量日志恢复模式下,大容量操作是最小日志记录操作。对于按最小方式记录日志,使用 SELECT… INTO 语句可能比创建一个表后使用 INSERT 语句填充该表效率更高。BULK_LOGGED,并在 SELECT...INTO 语句后重置为 FULL。此过程确保 SELECT...INTO 语句在事务日志中占用最少的空间并且高效执行。
二、示例
向已有数据的表中添加一个自增列:
EXEC sp_dboption 'cdc_db','select into/bulkcopy','true'
SELECT rownum=IDENTITY(int,1,1),cdc.dbo_table_cdc_CT.* INTO #temp_cdc FROM cdc.dbo_table_cdc_CT
EXEC sp_dboption 'cdc_db','select into/bulkcopy','false'
希望能给你带来帮助。