Ho bisogno di importare circa 500.000 record contenenti dati di ricerca IP (riferimento di sola lettura) circa una volta alla settimana (solo tre col int / bigint).
Non voglio davvero preoccuparmi di unire i dati con la tabella esistente, preferirei cancellare il vecchio e reimportare.
Idealmente, le query in esecuzione sui dati continuerebbero a essere eseguite (non ne riceviamo molti di questi ed è accettabile che vengano eseguiti un po 'più lentamente durante l'importazione, ma devono essere attivi 24/7, quindi eseguendo questo " fuori orario "non è un'opzione).
Le cose provate finora
SSIS: ho creato un pacchetto SSIS che tronca la tabella e le importazioni: l'esecuzione richiede circa 30 secondi (troppo a lungo davvero).
Tabella temporanea: l'importazione in una tabella temporanea, il troncamento e la copia attraverso richiedono anche circa 30 secondi.
BCP: Anche l'importazione di massa è piuttosto lenta (per qualche motivo è più lenta di SSIS (anche senza indici da mantenere) - Immagino che abbia a che fare con le transazioni char-> int / bigint: /
Tavolo a specchio? Quindi, al momento, mi chiedo di leggere la tabella attraverso una vista, importare i dati in una tabella speculare e modificare la vista per puntare a questa tabella ... sembra che sarà veloce, ma sembra minuscolo un po 'confuso con me.
Sembra che dovrebbe essere un problema comune, ma non riesco a trovare le pratiche raccomandate: qualsiasi idea sarebbe apprezzata!
Grazie