Por que o Plano de Execução inclui uma chamada de função definida pelo usuário para uma coluna computada persistida?

Tenho uma tabela com 2 colunas computadas, ambas com "Is Persisted" definido comoverdad. No entanto, ao usá-los em uma consulta, o Plano de Execução mostra o UDF usado para calcular as colunas como parte do plano. Como os dados da coluna são calculados pela UDF quando a linha é adicionada / atualizada, por que o plano os incluiria?

A consulta é incrivelmente lenta (> 30s) quando essas colunas são incluídas na consulta e extremamente rápida (<1s) quando são excluídas. Isso me leva a concluir que a consulta está realmente calculando os valores da coluna em tempo de execução, o que não deve ser o caso, pois eles estão definidos para persistir.

Estou perdendo alguma coisa aqui?

UPDATE: veja mais algumas informações sobre o nosso raciocínio sobre o uso da coluna computad

Somos uma empresa de esportes e temos um cliente que armazena nomes completos de jogadores em uma única coluna. Eles exigem que permitamos que eles pesquisem os dados do jogador pelo nome e / ou sobrenome separadamente. Felizmente, eles usam um formato consistente para nomes de jogadores - Sobrenome, Nome (Apelido) -, portanto, analisá-los é relativamente fácil. Criei um UDF que chama uma função CLR para analisar as partes do nome usando uma expressão regular. Então, obviamente, chamar a UDF, que por sua vez chama uma função CLR, é muito caro. Mas como é usado apenas em um persistiu coluna achei que seria usado apenas nas poucas vezes em que importássemos dados para o banco de dado

questionAnswers(1)

yourAnswerToTheQuestion