È una follia non avere un indice.
Aiuterebbe, ma la lunghezza della chiave dell'indice può essere solo di 900 byte.
Tuttavia, è probabile che tu abbia già dei duplicati perché è possibile che un 2° EXISTS venga eseguito dopo il 1° EXISTS ma prima del 1° INSERT.
La creazione dell'indice te lo dirà e successivamente ti proteggerà da questo.
Tuttavia, puoi ricevere errori sotto carico pesante.
Il mio approccio preferito per inserti alti/duplicati bassi è il modello JFDI. Altamente simultaneo
BEGIN TRY
INSERT etc
END TRY
BEGIN CATCH
IF ERROR_NUMBER() <> 2627
RAISERROR etc
END CATCH