Sto costruendo un sistema per l'aggiornamento di grandi quantità di dati tramite vari feed CSV. Normalmente eseguivo il ciclo solo su ciascuna riga del feed, eseguo una query di selezione per verificare se l'elemento esiste già e inserisce/aggiorna un elemento a seconda che esista o meno.Procedure consigliate per l'inserimento/aggiornamento di grandi quantità di dati in SQL Server 2008
Ritengo che questo metodo non sia molto scalabile e che possa martellare il server su feed più grandi. La mia soluzione è quella di scorrere gli elementi normalmente, ma memorizzarli. Quindi, per ogni 100 elementi, effettuare una selezione su questi 100 articoli e ottenere un elenco di elementi esistenti nel database corrispondente. Quindi concatenare insieme le istruzioni di inserimento/aggiornamento ed eseguirle nel database. Questo essenzialmente ridurrebbe i viaggi nel database.
È una soluzione sufficientemente scalabile e ci sono esempi di tutorial sull'importazione di feed di grandi dimensioni in un ambiente produttivo?
Grazie
+1 per l'utilizzo di BULK INSERT & MERGE –
Grazie per il suggerimento. Il motivo per cui faccio il loop di ogni elemento è perché ho bisogno di eseguire alcune convalide e logica di formattazione prima di aggiungerlo al database. Questo poi ritorna all'utente se ci sono problemi con il feed stesso. Mi piace l'idea di unire i dati, però, esaminerò ciò. – markvpc
È possibile eseguire facilmente convalida e formattazione anche in modalità basata su insiemi. Andare a fondo nei singoli record è quasi sempre una scelta sbagliata e non dovresti prendere in considerazione l'idea di farlo finché tutte le altre opzioni non saranno state eliminate. – HLGEM