|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre émérite
![]() ![]() Inscription : juillet 2006 Messages : 1 331 ![]() |
Bonjour.
Est-ce qu'il est plus intéressant de définir des champs de type NVARCHAR(MAX) (ou TEXT) directement dans la table même ou plutôt dans une table extérieure sachant que ce champ ne sera pas nécessaire dans la plupart des lecture de données. Je me pose la question, car ces données sont de toute manière stockées Out of row. Exemple : 1) Table Client : Identitfiant, nom, prénom, biographie VS 2) Table Client : Identitfiant, nom, prénom Table Biographie : ClientID, biographie Merci.
__________________
Où est votre sens de l'humour ? |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : juillet 2006 Messages : 1 331 ![]() |
Après plusieurs recherches, j'ai trouvé la réponse à cette question.
Si vous voulez la connaître, je vous invite à la présentation que je ferai ce vendredi 14 décembre à 10h10 à la grand place de Bruxelles (plus exactement sous le "sapin"). Je remercie mon sponsor, les boutiques de farce et attrapes "Guy Lee - Guilli" qui financeront la dite présentation. J'espère vous y voir nombreux.
__________________
Où est votre sens de l'humour ? |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() ![]() Inscription : juillet 2006 Messages : 1 331 ![]() |
Triste nouvelle, la présentation est annulée
Apparemment mon sponsor aurait subit de fortes pressions d'une certaine Estelle Praux et s'est rétracté Mais, bon prince, je vous donne quand même la réponse : Avoir la valeur à même la table et out of row (désactivé par défaut, ne l'oublions pas) est plus performant. J'aurais dû vous expliquer des trucs sur les pointeurs et le storage tempdb mais là, du coup, je n'y ai plus le coeur. Estelle Praux, qui que tu soit, je ne te remercie pas.
__________________
Où est votre sens de l'humour ? |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() David BARBARINInscription : août 2005 Messages : 4 137 ![]() |
Citation:
Je précise tout d'abord que le choix des types NVARCHAR(MAX) (ou TEXT) n'ont pas du tout le même impact sur le stockage. Les types avec longueurs MAX laissent le choix à SQL Server de la manière de stocker les données (soit in-row, soit row-overflow soit LOB). Tout dépend en réalité la longueur des données insérés ou mis à jour. D'ailleurs c'est un des pièges de ce type de données car en fonction de cela les données des colonnes concernées peuvent être déplacées d'un type de stockage à un autre (consommateur en allocation et en écriture dans le journal) Ceci étant dit prenons le cas le plus simple avec les données de la colonne biographie dans un type de stockage à part LOB : Citation:
Prenons le cas d'une maintenance maintenant. Le fait de tout avoir dans une page peut être problématique. Les opérations de maintenance sur les types LOB ne sont pas forcément réputés pour être aussi rapides que les données in-row. Je ne rentre pas dans le détail mais avoir un partionnement vertical ici peut être intéressant surtout si on a beaucoup de volumétrie dans la colonne bibliographie et que la table principale est très sollicitée. ++ |
||
|
10
|
Copyright © 2000-2013 - www.developpez.com