Via Network » SqlServer
Desde hace un tiempo vengo viendo un problema al hacer múltiples inserts de un servidor a otro con el tÃpico modo podrÃa tardar horas si hablamos de 10 mil o mas inserciones:
insert into MiTabla (campo1,campo2,campo3) values(valor1,valor2,valor3)
Para optimizar una inserción múltiple o masiva TransacSQL tiene una soluciòn interesante (como la tiene mysql, postgres, etc) , esta soluciòn también es empleada por .Net con el metodo bulkcopy, Vamos a evr un ejemplo:
insert into Mitabla (campo1,campo2,campo3)
select valor1,valor2,valor3
union all
select valor1,valor2,valor3
union all
select valor1,valor2,valor3
union all
select valor1,valor2,valor3
como se puede ver la magia esta en seleccionar los campos con un Select y agregar la clausula UNION ALL de tal manera que podrÃamos agregar la cantidad de registros que necesitemos
Para contarles un poco, probe este script desde PHP para insertar 10 mil registros en 30 segundos un tiempo aceptable si lo comparamos con inserción tradicional, espero sea de utilidad.


