2009-10-23 3 views
0

Je dois convertir une base de données SQL Server 2005 non unicode en base de données basée sur unicode. J'ai des centaines de procs stockés et bien sûr les données sont stockées dans varchar. Je sais que j'ai besoin de changer tous les types de données à l'équivalent unicode (varchar à nvarchar) mais ne dois-je pas changer comment les procs stockés sont écrits ou continueront-ils à fonctionner comme avant? J'essaie de comprendre ce qui est nécessaire pour passer de non-unicode à unicode pour une grande base de données avec de nombreux procs stockés.Conversion de données SQL Server non unicode et de process stockés en Unicode

Répondre

3

Oui, vous devez mettre à jour vos données et procédures stockées, mais une chose importante à retenir est que vous devez seulement changer certains de vos colonnes en UNICODE. Pour tout ce qui est "interne", vous n'avez pas besoin de payer le coût UNICODE.

Il y a beaucoup de travail à faire pour ce changement, mais ne changez pas tout aveuglément. J'ai déjà reçu ce genre de changement auparavant, et c'est douloureux. (Utiliser nvarchar (1) pour stocker 'y' et 'n' est stupide.)

+0

Notez que dans SQL Server 2008 R2, si vous utilisez la compression de données, vous ne payez que le coût Unicode pour les données Unicode réelles. L'algorithme de compression est très intelligent - il ne gaspille pas deux octets sur les caractères ASCII, et il permet une compression significative même sur les données Unicode en stockant les décalages au lieu des caractères réels à 2 octets. Ajouter cela au-dessus du dictionnaire et d'autres compression que vous obtenez déjà avec la compression de données. Bien sûr, vous payez une pénalité pour la compression/décompression, alors testez toujours. Quelques blogs (les trois premiers hits): http://is.gd/4yleO –

+0

La déception pour moi est que la compression UNICODE est uniquement Enterprise. C'est quelque chose que SQL Server est derrière, et maintenant ils rattrapent une bonne solution, mais ils la limitent à l'Enterprise (que je ne peux pas utiliser). –

Questions connexes