Есть ли преимущества использования MERGE перед TRUNCATE / DELETE, за которым следует INSERT INTO SELECT? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть этот код, код # 1:

MERGE sales.category t 
    USING sales.category_staging s
ON (s.category_id = t.category_id)
WHEN MATCHED
    THEN UPDATE SET 
        t.category_name = s.category_name,
        t.amount = s.amount
WHEN NOT MATCHED BY TARGET 
    THEN INSERT (category_id, category_name, amount)
         VALUES (s.category_id, s.category_name, s.amount)
WHEN NOT MATCHED BY SOURCE 
    THEN DELETE;

Я могу использовать это вместо него, код # 2:

TRUNCATE TABLE sales.category

INSERT INTO sales.category
SELECT * FROM category_staging

Или я могу использовать это вместо него, код # 3:

DELETE FROM sales.category

INSERT INTO sales.category
SELECT * FROM category_staging

Есть ли производительность / неисполнение преимущество использования кода # 1?

...