Necesito importar aproximadamente 500,000 registros que contienen datos de búsqueda de IP (referencia de solo lectura) aproximadamente una vez a la semana (solo tres cols int / bigint).
Realmente no quiero preocuparme por fusionar los datos con la tabla existente, preferiría borrar lo viejo y volver a importar.
Idealmente, las consultas que se ejecutan sobre los datos continuarían ejecutándose (no recibimos muchos de estos y es aceptable que se ejecuten un poco más lento mientras se produce la importación, pero deben estar activos las 24 horas del día, los 7 días de la semana, por lo tanto, ejecute esto " fuera de horario "no es una opción).
Cosas intentadas hasta ahora
SSIS: he creado un paquete SSIS que trunca la tabla y las importaciones; tarda unos 30 segundos en ejecutarse (demasiado tiempo realmente).
Tabla temporal: importar a una tabla temporal, truncar y copiar también demora unos 30 segundos.
BCP: la importación masiva también es bastante lenta (por alguna razón es más lenta que SSIS (incluso sin índices para mantener); supongo que es algo que tiene que ver con las transacciones char-> int / bigint: /
Mesa de espejo? Entonces, en este momento, me pregunto si leer la tabla a través de una vista, importar los datos en una tabla espejo y alterar la vista para apuntar a esta tabla ... parece que será rápido, pero parece pequeño un poco hacky para mi
Parece que debería ser un problema común, pero no puedo encontrar las prácticas recomendadas: ¡cualquier idea sería muy apreciada!
Gracias