Copia masiva de una tabla pequeña a una más grande en SQL Server 2005

bcp sqlbulkcopy sql-server sql-server-2005

Pregunta

Soy un novato en SQL Server y tengo el siguiente dilema:

Tengo dos mesas con la misma estructura. Llámalo runningTbl y finalTbl .

runningTbl contiene alrededor de 600 000 a 1 millón de filas cada 15 minutos.

Después de hacer algo de limpieza de datos en runningTbl quiero mover todos los registros a finalTbl . finalTbl actualmente tiene alrededor de 38 millones de filas.

El proceso anterior debe repetirse cada 15-20 minutos.

El problema es que el movimiento de datos de runningTbl a finalTbl está demorando más de 20 minutos a veces ...

Inicialmente, cuando las mesas eran pequeñas, tardó entre 10 segundos y 2 minutos en copiarse.

Ahora solo toma demasiado tiempo.

Cualquiera que pueda ayudar con esto? Consulta SQL a seguir ..

Gracias

Respuesta popular

Para empezar: una de las cosas que he aprendido a lo largo de los años es que MSSQL hace un gran trabajo en la optimización de todo tipo de operaciones, pero hacerlo depende en gran medida de las estadísticas de todas las tablas involucradas. Por lo tanto, sugeriría ejecutar "ACTUALIZAR ESTADÍSTICAS procesadas_logs" y "ACTUALIZAR ESTADÍSTICAS unprocessed_logs" antes de ejecutar las inserciones reales; incluso en una mesa grande estas cosas no toman tanto tiempo. Aparte de eso, según la consulta anterior, mucho depende de los índices de la tabla de destino. Supongo que la tabla de destino tiene su índice agrupado (o CLAVE PRINCIPAL) en (al menos) UnixTime, si no creará una gran fragmentación de datos cuando comprima cada vez más datos entre los registros existentes. Para solucionar esto, puede intentar desfragmentar la tabla de destino de vez en cuando (se puede hacer en línea, pero lleva mucho tiempo), pero hacer el índice agrupado (o PK) para que los datos siempre se agreguen al final de la tabla ser el mejor enfoque Bueno, al menos en mi opinión.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué