SQL Server 2005 colonne calculée persistée
-
06-09-2019 - |
Question
J'ai des colonnes calculées dans une table et ont besoin de savoir si je dois mettre persistée à true. Quels sont les avantages? Y a-t-il des inconvénients? Que signifie « persistée » signifie?
La solution
« Persisté » signifie « stocké physiquement » dans ce contexte.
Cela signifie que la valeur calculée est calculée une fois sur insert (et des mises à jour) et stockés sur le disque, il ne doit pas être à nouveau calculée sur tous les sélectionner.
provoque aussi une persistantes pénalité de performance lors de l'insertion et des mises à jour, étant donné que la colonne doit être calculée, mais augmentera les performances des requêtes de sélection ultérieures.
Alors, cela dépend de votre modèle d'utilisation, l'approche à suivre: si vous mettez à jour fréquemment, mais interroger beaucoup, vous devez définir persista = true.
Si vous mettez à jour fréquemment, ou si vous ne se soucient pas de la performance de récupération, vous devriez envisager de mettre en persista = false
Autres conseils
Une chose pas mentionné dans d'autres réponses: une colonne calculée doit être MAINTENUE pour être utilisable à partir foreign keys
.