2010-11-15 8 views
2

J'ai une table avec une colonne pour l'entrée de flux XML comme (nvarchar (max)) et j'ai exécuté une fonction de hachage (Md5) sur cette colonne pour obtenir une clé de hachage pour faciliter la recherche et maintenir unicité. Il est généralement plus de 900 octets de long. Maintenant, j'ai réalisé que la clé de hachage ne garantit pas l'unicité car je viens de faire un compte de lignes dupliquées sur cette colonne et étais étonné et quand j'ai essayé de créer un index unique sur la colonne , SQL Server m'a donné une erreur de ne peut pas créer un index unique sur la colonne non déterministe .. quelque chose comme ça.contrainte unique sur un grand champ de texte

Maintenant, j'ai cherché et trouvé que dans certains cas, je devrais utiliser le type (ntext) et créer un index unique sur cela; D'autres mentionnent l'utilisation de checksum et d'un index, tandis que d'autres mentionnent les triggers, checksum, etc. Quelle serait la meilleure méthode à mettre en œuvre sur ce terrain pour l'unicité en gardant à l'esprit que la table compte déjà 22 millions d'enregistrements et que je ne peux pas perdre des données Merci d'avance

Répondre

2

Microsoft recommande de ne pas utiliser les types ntext car ils seront déconseillés dans le futur. La documentation est here. Donc, je voudrais aller à l'aide de sommes de contrôle et de mettre l'index unique sur cela. This post en parle.

Questions connexes