2010-03-30 14 views
10

Scalenie może wykonywać operacje wstawiania, aktualizowania lub usuwania w tabeli docelowej na podstawie wyników sprzężenia z tabelą źródłową. Na przykład można zsynchronizować dwie tabele, wstawiając, aktualizując lub usuwając wiersze w jednej tabeli na podstawie różnic występujących w drugiej tabeli.Jaka jest wydajność klauzuli "Scal" w serwerze sql 2008?

Czy ktoś zna wydajność, aby użyć "Połącz" z tradycyjną logiką, aby sprawdzić istnienie i zdecydować o aktualizacji lub wstawić?

Dzięki!

Odpowiedz

8

MERGE jest ogólnie szybszy, ponieważ jest mniej operacji DML i jest to również zalecane podejście z dokumentacji. W "tradycyjny" sposób przetwarzasz tabele dwa razy - raz, aby sprawdzić istnienie i raz, aby wykonać DML. Z MERGE wszystko jest obudowane jedną operacją - stąd jeden zestaw zamków wydanych, jeden zestaw rejestrowania itp. Itp.

Jest jednak dość subiektywny w stosunku do twoich zapytań. Powinieneś prawdopodobnie spojrzeć na Optimizing MERGE Statement Performance na MSDN.

1

Firma Technet ma pewne informacje w numerze Optimizing MERGE Statement Performance. Zasadniczo mówi się, że wydajność jest lepsza niż wykonywanie indywidualnych kontroli, ponieważ wymagane jest tylko jedno przejście przez dane. Jednak indeksy itp. Są oczywiście nadal ważne.

0

Użyliśmy tego oświadczenia Merge ostatnio w dużym projekcie hurtowni danych i znaleźliśmy dobrą wydajność, a także łatwą implementację. Uważamy, że oświadczenie Merge jest bardzo przydatne dla rozwoju.

doczekać dyskutować

dzięki prav

Powiązane problemy