6 votes

SQL*Loader bloqué après le chargement de 4,2 milliards d'enregistrements

Nous sommes bloqués par un problème dans le chargeur sql. Nous essayons de charger un fichier de données d'environ 4,6 milliards de lignes (près de 340 Go) dans 2 tables oracle sur la base de certaines conditions en utilisant Sql Loader. Mais après avoir chargé 4,2 milliards d'enregistrements, le processus du chargeur SQL se termine sans qu'aucune erreur ne soit signalée, même si le reste des enregistrements doit encore être chargé.

Il n'y a pas non plus de dossiers rejetés ou mauvais. Y a-t-il une limite au nombre d'enregistrements que SQL Loader peut charger ? Je n'ai pas trouvé de documentation à ce sujet. Veuillez me faire savoir si quelqu'un a une idée de ce problème.

Merci !

5voto

Benoit Points 35553

La valeur de 2³² est de 4294967295, ce qui est proche de 4,2 milliards.

D'après la description de votre problème, je peux seulement dire que peut-être la valeur par défaut de sqlldr pour LOAD est en fait 2³² - 1, et cette valeur est stockée sur 32 bits.

1voto

Wouter Points 308

J'ai testé l'hypothèse de Benoit sur le fait que l'entier interne de LOAD est trop petit pour +4.2bil lignes. Cette hypothèse se vérifie. Lorsque je découpe mon fichier source en fichiers de -4.2bil lignes, et que je les insère en utilisant append, l'insertion fonctionne parfaitement.

Il ne s'agit donc pas d'une limitation de la base de données, comme suggéré ici : https://forums.oracle.com/message/11201322 (j'y ai également posté mes conclusions)

Il y a aussi la suggestion de BluShadow sur le forum Oracle d'essayer d'utiliser les tables externes. Je ne l'ai pas encore testé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X