Un par de ideas / teorías:
SELECCIONAR EN ... permite que el RDBMS determine el orden de clasificación según el orden de su tabla original. Si inserta en una tabla existente, puede ser necesaria una clasificación para que coincida con un índice agrupado o no agrupado.
Sin índices : cuando SELECT INTO...RDBMS sabe con certeza que no hay índices preexistentes para actualizar.
Sin contención : dado que la tabla en la que está insertando no existe, SQL Server no necesita preocuparse por el bloqueo de nivel de fila o el manejo de contención. Nada más puede hacer referencia a la tabla que crea, ya que no existe.
Dicho todo esto, hay otras formas de insertar en una tabla muy rápidamente.
Asegúrese de que sus claves de índice agrupadas coincidan cuando sea posible. Esto significa que no hay clasificación sobre la marcha
Deshabilite todos los índices no agrupados. Autoexplicativo.
Establezca el modo de recuperación en simple y marque el indicador 610 en ON. Use la TABLOCKpista en su tabla de destino y la NOLOCKpista en su tabla de origen.
Por ejemplo, suponga que tablea y tableb tienen el mismo índice agrupado:
INSERT INTO TableB WITH (TABLOCK)
SELECT <Columns>
FROM TableA WITH (NOLOCK)
En mi experiencia, esto es más rápido que usar SELECT INTO...y luego crear el índice agrupado. Tenga en cuenta que esto también puede funcionar en una tabla que ya tiene datos, lo cual es un escenario mucho más útil.
EDITAR:
Aquí hay un documento técnico increíblemente detallado de MS para el rendimiento de carga de datos en Sql Server 2008.