Ich muss ungefähr einmal pro Woche ungefähr 500.000 Datensätze mit IP-Suchdaten (schreibgeschützte Referenz) importieren (nur drei int / bigint-Spalten).
Ich möchte mich nicht wirklich darum kümmern, die Daten mit der vorhandenen Tabelle zusammenzuführen. Ich würde es vorziehen, die alte zu löschen und erneut zu importieren.
Im Idealfall werden Abfragen, die über die Daten ausgeführt werden, weiterhin ausgeführt (wir erhalten nicht viele davon, und es ist akzeptabel, dass sie während des Imports etwas langsamer ausgeführt werden, müssen jedoch rund um die Uhr verfügbar sein. außerhalb der Geschäftszeiten "ist keine Option).
Bisher versuchte Dinge
SSIS: Ich habe ein SSIS-Paket erstellt, das die Tabelle abschneidet und importiert. Die Ausführung dauert ungefähr 30 Sekunden (wirklich zu lang).
Temporäre Tabelle: Das Importieren in eine temporäre Tabelle, das Abschneiden und Kopieren dauert ebenfalls etwa 30 Sekunden.
BCP: Der Massenimport ist auch zu langsam (aus irgendeinem Grund ist er langsamer als SSIS (auch wenn keine Indizes gepflegt werden müssen) - ich vermute, dass dies etwas mit den Transaktionen char-> int / bigint zu tun hat: /
Spiegeltisch? Im Moment frage ich mich also, ob ich die Tabelle durch eine Ansicht lesen, die Daten in eine Spiegeltabelle importieren und die Ansicht so ändern soll, dass sie auf diese Tabelle verweist. Dies scheint schnell zu sein, aber es scheint winzig ein bisschen hacky für mich.
Dies scheint ein häufiges Problem zu sein, aber ich kann keine empfohlenen Vorgehensweisen finden - Ideen wären sehr willkommen!
Vielen Dank
quelle