Ainda não entendo sobre "persistir" quando li sobre isso.
Qual a vantagem de usar código SQL "persistido" em uma tabela específica no sql server.
Qual valor obtenho quando uso o código sql "persistido"?
Obrigado!
Ainda não entendo sobre "persistir" quando li sobre isso.
Qual a vantagem de usar código SQL "persistido" em uma tabela específica no sql server.
Qual valor obtenho quando uso o código sql "persistido"?
Obrigado!
PERSISTED
define se o valor da coluna pré-calculada é armazenado ou não nas páginas de dados.Se você indexar a coluna computada, o valor da coluna computada sempre será armazenado pré-calculado naquelas, independentemente de você defini-la ou não como "persistida"
Existem alguns casos em que o sistema força você a fazer isso
PERSISTED
( source )Not NULL
( fonte )Fora desses casos, cabe a você decidir se considera que o custo adicional de linhas mais largas por ter que armazenar essas informações nas páginas de dados superaria o potencial*benefício de ter o valor pré-calculado para que não precise ser recalculado na
SELECT
hora.* Mesmo que marcado como
PERSISTED
não há garantia de que a expressão não será reavaliada em tempo de execução de qualquer maneira. Isso é algo que o sinalizador de rastreamento 176 pode ajudar se você encontrar isso.Persistido é uma opção que pode ser especificada quando uma coluna computada é definida em uma tabela. Uma coluna computada é uma coluna em uma tabela definida por uma expressão T-SQL para calcular seu valor. Tal expressão pode conter referências a outras colunas e/ou utilizar funções escalares definidas pelo sistema ou pelo usuário. Ou mais simplesmente nos documentos:
Sem usar a
PERSISTED
palavra-chave, a expressão é calculada sempre que a coluna é referenciada e lida. Isso pode ser benéfico quando os casos de uso da tabela exigem mais gravação do que leitura.O uso da
PERSISTED
palavra-chave faz com que a expressão seja calculada no momento em que a tabela é gravada e salva no disco (persistida) como se fosse uma coluna normal. Isso significa que todas as referências subsequentes lidas na coluna computada não precisarão calcular a expressão, porque seus resultados já estão salvos no disco. Isso geralmente é mais benéfico quando os casos de uso da tabela exigem mais leitura do que gravação.Esta resposta do StackOverflow fornece um pouco mais de detalhes sobre as diferenças de usar
PERSISTED
ou não a palavra-chave: