J'ai quelques grandes tables (des millions de lignes). Je reçois constamment des fichiers contenant de nouvelles lignes à ajouter à ces tables - jusqu'à 50 millions de lignes par jour. Environ 0,1% des lignes que je reçois sont des doublons de lignes que j'ai déjà chargées (ou sont des doublons dans les fichiers). Je voudrais empêcher ces lignes d'être chargées dans la table.Comment empêcher le chargement de lignes dupliquées dans une table Oracle?
Actuellement j'utilise SQL Loader afin d'avoir des performances suffisantes pour faire face à mon grand volume de données. Si je prends l'étape évidente et ajoute un index unique sur les colonnes qui goven si une rangée est ou non une copie, SQL Loader commencera à échouer le fichier entier qui contient la ligne dupliquée - alors que je veux seulement empêcher la rangée dupliquée lui-même étant chargé. Je sais que dans SQL Server et Sybase je peux créer un index unique avec la propriété 'Ignore Duplicates' et que si j'utilise ensuite BCP, les lignes dupliquées (comme définies par cet index) ne seront simplement pas chargées.
Existe-t-il un moyen d'obtenir le même effet dans Oracle?
Je ne veux pas supprimer les lignes en double une fois qu'elles ont été chargées - il est important pour moi qu'elles ne devraient jamais être chargées en premier lieu.
Comment chargez-vous les fichiers - SQL * Loader/Data Pump? – dpbradley
Actuellement en utilisant SQL * Loader. En raison du grand volume de données, la performance est importante pour moi. – user181903