Devo trovare il modo migliore per inserire o aggiornare i dati nel database utilizzando sql server e asp.net. È uno scenario standard se i dati esistono vengono aggiornati se non vengono inseriti. So che ci sono molti argomenti qui a riguardo, ma nessuno ha risposto a ciò che ho bisogno di sapere.Inserimento/aggiornamento bulk del server SQL in MERGE nello scenario di inserimento o aggiornamento
Quindi il mio problema è che non c'è davvero alcun problema quando si aggiorna/inserisce 5k - 10k righe ma cosa con 50k e altro.
La mia prima idea era di usare il comando MERGE del server SQL 2008, ma ho qualche considerazione sulle prestazioni se saranno 50k + righe. Inoltre non so se posso marge i dati in questo modo basandomi non sulla chiave id primaria (int) ma su un'altra chiave univoca nella tabella. (per essere precisi un numero di serie del prodotto che non cambierà nel tempo).
La mia seconda idea era di ottenere prima tutti i periodici di prodotto, quindi confrontare i nuovi periodici di dati con quello e dividerli in dati da inserire e dati da aggiornare, quindi creare solo un inserto di massa e un aggiornamento di massa.
Solo non so quale sarà il migliore, con MERGE non so quale sarà la prestazione e sarà supportato solo da SQL Server 2008, ma sembra abbastanza semplice, la seconda opzione non ha bisogno sql 2008, i batch dovrebbero essere veloci ma selezionando prima tutti i serial e dividendo in base ad essi potrebbero esserci delle penalità prestazionali.
Qual è la tua opinione, cosa scegliere?
Stai decidendo di eseguire l'aggiornamento al 2008 o stai distribuendo un'applicazione che potrebbe dover essere eseguita su più versioni di SQL Server? Perché se lo hai già, dovresti essere in grado di testare Merge per le prestazioni. – JeffO
Yeh, dovrò aggiornare per usare marge, non è un problema, ma se Marge è peggio nelle prestazioni, allora non so se ne vale la pena. – Programista