2010-03-30 10 views
10

Unisci può eseguire operazioni di inserimento, aggiornamento o cancellazione su una tabella di destinazione in base ai risultati di un join con una tabella di origine. Ad esempio, è possibile sincronizzare due tabelle inserendo, aggiornando o eliminando le righe in una tabella in base alle differenze rilevate nell'altra tabella.Qual è la performance della clausola "Merge" in sql server 2008?

Qualcuno ha familiarità con le prestazioni per utilizzare "Unisci" rispetto alla logica tradizionale per verificare l'esistenza e decidere l'aggiornamento o inserire quindi?

Grazie!

risposta

8

MERGE è generalmente più veloce perché ci sono meno operazioni DML, ed è anche l'approccio raccomandato dalla documentazione. Con il modo "tradizionale", stai elaborando le tabelle due volte: una volta per verificare l'esistenza e una volta per eseguire il DML. Con MERGE, tutto è incapsulato con una sola operazione, quindi un gruppo di blocchi emessi, un set di registrazione ecc.

Tuttavia, è piuttosto soggettivo su ciò che le query stanno effettivamente facendo. Probabilmente dovresti dare un'occhiata a Optimizing MERGE Statement Performance su MSDN.

1

Technet ha alcune informazioni in Optimizing MERGE Statement Performance. In pratica dice che le prestazioni sono migliori rispetto ai singoli controlli, perché è richiesto un solo passaggio sui dati. Tuttavia gli indici ecc. Sono ovviamente ancora importanti.

0

Abbiamo utilizzato questa dichiarazione di fusione di recente in un progetto di Data Warehouse di grandi dimensioni e abbiamo riscontrato buone prestazioni e facilità di implementazione. Riteniamo che la dichiarazione di unione sia molto utile per lo sviluppo.

in attesa di discutere

grazie Prav

Problemi correlati