2009-09-18 8 views
0

Je suis à la recherche de bonnes pratiques et d'idées pour gérer les données dans une table de base de données lors d'un transfert de données en masse. Je pense que ce serait plus facile de commencer par un exemple:Suppression d'anciens enregistrements lors du transfert groupé SQL

Supposons que la table de base de données en question contient les documents suivants:

id | name  | ... 
1 | company A | 
2 | company B | 
3 | company C | 

Je puis opter pour la mise à jour en vrac ce tableau avec un nouveau fichier de données qui contient des informations uniquement pour les entreprises A et C, étant entendu que la société B n'est plus un point de données souhaité. Ma question est la suivante: j'utilise une technique upsert pour gérer les points de données répertoriés dans le fichier de données, mais comment puis-je supprimer efficacement le point de données non représenté de la base de données (par exemple, la société B)? Dois-je surveiller les horodatages et effacer les résultats plus anciens que l'heure de début du téléchargement? Ou devrais-je simplement vider la table entière et la repeupler (au détriment de la gestion des indices)? Ce dernier a l'inconvénient de rendre la table inutile pendant le téléchargement, mais le premier a des problèmes de concurrence et de verrouillage. Pensées?

Répondre

2

Je place les données dans une table de travail, puis j'utilise le code SQL pour insérer ou mettre à jour uniquement les enregistrements que je veux plutôt que l'insertion en bloc dans une table de production.

Désolé, vous ne savez pas, vous voulez savoir comment se débarrasser des dossiers inutiles? Insérez de nouveau en bloc dans une table de travail, puis joignez-vous à cette table pour identifier les enregistrements qui ne sont plus nécessaires et supprimez-les avec une instruction delte.

+0

Une fois que les données sont téléchargées dans une zone de travail, vous avez beaucoup d'options à votre disposition, y compris beaucoup de travail avant de modifier la table "principale". –

+0

Je n'ai même jamais envisagé de mettre en scène les nouvelles données dans une table temporaire. Cela fonctionnera bien. Merci! – trydionel

+0

Je ne fais jamais une importation de données sans la mettre en scène d'abord. Rien ne va dans mes tables prod jusqu'à ce que j'ai un changement pour le nettoyer. – HLGEM

Questions connexes