Pergunta: Qual instrução é melhor para o desempenho - SELECT ou SET?
Lembre-se de que o SELECT foi projetado para retornar dados, enquanto o SET foi projetado para atribuir valores a variáveis locais.
Então ao comparar seu desempenho na instrução SELECT de loop, obtém-se melhor desempenho do que SET. Em outras palavras, SET é mais lento que SELECT. O motivo é que cada instrução SET é executada individualmente e atualiza os valores por execução, enquanto a instrução SELECT inteira é executada uma vez e atualiza todos os três valores em uma execução.
SET é o padrão ANSI para atribuição de variáveis, SELECT não é. SET só pode atribuir uma variável de cada vez, SELECT pode fazer várias atribuições de uma vez - o que dá a SELECT uma pequena vantagem de velocidade em relação a SET. Se atribuir a partir de uma consulta, SET só pode atribuir um valor escalar. Se a consulta retornar vários valores / linhas, SET gerará um erro. SELECT atribuirá um dos valores à variável e ocultará o fato de que vários valores foram retornados. Ao atribuir a partir de uma consulta, se não houver nenhum valor retornado, SET atribuirá NULL, onde SELECT não fará a atribuição mantendo a variável inalterada.
Referências Pinal Dave blog.sqlauthority.com
Estas e outras dicas aqui no blog acompanhe.
Estas e outras dicas aqui no blog acompanhe.
Grande abraços