J'ai une table avec 10 millions d'enregistrements sans index et j'essaye de dédupliquer la table. J'ai essayé les inserts avec select où soit en utilisant une jointure gauche ou là où n'existe pas; mais chaque fois que je reçois l'erreur avec violation de la clé. L'autre problème est que le fichier journal devient trop volumineux et la transaction ne se termine pas. J'ai essayé de régler la récupération à simple comme recommandé en ligne, mais cela n'aide pas. Voici les requêtes que j'ai utilisées;le fichier journal de SQL grandit trop grand
insert into temp(profile,feed,photo,dateadded)
select distinct profile,feed,photo,dateadded from original as s
where not exists(select 1 from temp as t where t.profile=s.profile)
Ceci produit simplement la violation d'erreur de clé. J'ai essayé d'utiliser ce qui suit:
insert into temp(profile,feed,photo,dateadded)
select distinct profile,feed,photo,dateadded from original as s
left outer join temp t on t.profile=s.profile where t.profile is null
Dans les deux cas maintenant le fichier journal se remplit avant la fin de la transaction. Donc, ma question principale est sur le fichier journal et je peux comprendre la déduplication avec les requêtes.
Je vais essayer cette – vbNewbie
on m'a dit que quelle que soit l'utilisation de lots que je dois avoir un index non cluster sur la table source que je fais pas parce qu'il contient des dupes. ou comment cela peut-il être fait alors? – vbNewbie
les index ne doivent pas être des index uniques – HLGEM