Existe uma regra basica para banco de dados…
Tudo que eh NOT ou OR prejudica a performance do banco.

Errado
if not exists (select 1
from pessoa
where cod = 560)
begin
insert……
end
else
begin
update…
end

Usar Exists ou NOT Exists?
Nunca…. Jamais….. use o NOT Exists, porque o SGBD vai varrer a tabela inteira pesquisando se o registro realmente nao existe. No caso do Exists, se o SGBD encontrar o registro já segue para a proxima instrucao.

Correto
if exists (select 1
from pessoa
where cod = 560)
begin
update….
end
else
begin
insert……
end

AND melhor que OR
Tente sempre utilizar o AND, pois quando utilizamos o OR o SGBD irá buscar todos os registros que estao dentro de todas as condicoes.

flw…😀