MERGE vs. UPSERT
-
21-09-2019 - |
Domanda
Ho un'applicazione che sto scrivendo in accesso con un back-end server SQL. Una delle parti più utilizzati è dove gli utenti seleziona una risposta a una domanda, una stored procedure viene poi licenziato che vede se è già stata data una risposta, se ha un aggiornamento viene eseguito, se viene eseguito senza un inserto.
Questo funziona bene, ma ora abbiamo aggiornato a SQL Server 2008 Express mi chiedevo se sarebbe meglio / più veloce / più efficiente di riscrivere questo SP per utilizzare il nuovo comando merge.
Qualcuno ha qualche idea se questo è più veloce di fare un SELECT seguita sia da un INSERT o UPDATE?
Soluzione
Non ne vale la pena. Forse fattibile, ma non vi darà nulla evidente.
Unisci è particolarmente di mira i data warehouse in cui scoprire cosa inserimento / aggiornamento è la parte difficile. Esso consente tutte le operazioni (inserimento, aggiornamento) per essere fatto con una serie di fusioni, rispetto a uno per ogni condizione. Questo non fa alcuna differenza nel tuo caso.
Ho un database in cui sto caricando 3-5 milioni di righe in una tabella 300 milioni di fila - ci si fondono improoves mio rendimento del 50% (una scansione di tabella invece di due)
.