Questions bêtes :
1/ Quel sont les avantages et inconvénients réel d'utiliser une colonne
de type varchar() ou char().
2/Si je met mes colonnes en char(30) par exemple, est ce que les
applications qui vont utiliser la base de donnée vont obtenir des
chaines de caractères avec des blanc complété à droite ?
3/Faut'il commencer à migrer toutes les colonnes xxxchar() en
nxxxchar() (UNICODE) ? Perd-on en performance de recherche ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SQLpro [MVP]
Gilles TOURREAU a écrit :
Bonjour tout le monde !
Questions bêtes : 1/ Quel sont les avantages et inconvénients réel d'utiliser une colonne de type varchar() ou char().
VARCHAR ne complète pas à blanc, CHAR oui. VARCHAR est moins performant que CHAR intrinséquemment.
Si pas de modif et colonne peu cherchée alors VARCHAR donnera de bons résultats. Si modif et colonne fréquemment cherchée alors CHAR dononera de bons résultats Si faible taille (de 1 à 4) préférez TOUJOURS CHAR.
2/Si je met mes colonnes en char(30) par exemple, est ce que les applications qui vont utiliser la base de donnée vont obtenir des chaines de caractères avec des blanc complété à droite ?
Oui, il faut prévoir de TRIMer.
3/Faut'il commencer à migrer toutes les colonnes xxxchar() en nxxxchar() (UNICODE) ? Perd-on en performance de recherche ?
CHAR/VARCHAR encodage 1 car = 2 octet UNICODE encosage 1 car = 2 octets donc 2 fois plus de place, donc 2 fois moins rapide.
En vous remerciant par avance de vos lumières !
Cordialement
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Gilles TOURREAU a écrit :
Bonjour tout le monde !
Questions bêtes :
1/ Quel sont les avantages et inconvénients réel d'utiliser une colonne
de type varchar() ou char().
VARCHAR ne complète pas à blanc, CHAR oui.
VARCHAR est moins performant que CHAR intrinséquemment.
Si pas de modif et colonne peu cherchée alors VARCHAR donnera de bons
résultats.
Si modif et colonne fréquemment cherchée alors CHAR dononera de bons
résultats
Si faible taille (de 1 à 4) préférez TOUJOURS CHAR.
2/Si je met mes colonnes en char(30) par exemple, est ce que les
applications qui vont utiliser la base de donnée vont obtenir des
chaines de caractères avec des blanc complété à droite ?
Oui, il faut prévoir de TRIMer.
3/Faut'il commencer à migrer toutes les colonnes xxxchar() en nxxxchar()
(UNICODE) ? Perd-on en performance de recherche ?
CHAR/VARCHAR encodage 1 car = 2 octet
UNICODE encosage 1 car = 2 octets donc 2 fois plus de place, donc 2 fois
moins rapide.
En vous remerciant par avance de vos lumières !
Cordialement
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Questions bêtes : 1/ Quel sont les avantages et inconvénients réel d'utiliser une colonne de type varchar() ou char().
VARCHAR ne complète pas à blanc, CHAR oui. VARCHAR est moins performant que CHAR intrinséquemment.
Si pas de modif et colonne peu cherchée alors VARCHAR donnera de bons résultats. Si modif et colonne fréquemment cherchée alors CHAR dononera de bons résultats Si faible taille (de 1 à 4) préférez TOUJOURS CHAR.
2/Si je met mes colonnes en char(30) par exemple, est ce que les applications qui vont utiliser la base de donnée vont obtenir des chaines de caractères avec des blanc complété à droite ?
Oui, il faut prévoir de TRIMer.
3/Faut'il commencer à migrer toutes les colonnes xxxchar() en nxxxchar() (UNICODE) ? Perd-on en performance de recherche ?
CHAR/VARCHAR encodage 1 car = 2 octet UNICODE encosage 1 car = 2 octets donc 2 fois plus de place, donc 2 fois moins rapide.
En vous remerciant par avance de vos lumières !
Cordialement
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************