]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Warenimport bei grossen Datenbanken.
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 31 Jul 2012 12:43:30 +0000 (14:43 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 31 Jul 2012 12:43:30 +0000 (14:43 +0200)
Der Warenimport hat bisher alle Waren ausgelesen und dann im Hash umsortiert.
Bei einer Datenbank mit 84k Waren hat das 22s gedauert, und 700MB
Arbeitsspeicher gefressen, das ist nicht zumutbar. Nun wird jeder Wert einzeln
aus der Datenbank gesucht.

SL/Controller/CsvImport/Part.pm

index 387bdb5f2c918078bfeccfd7ac0741f4c82d5981..6c056d0f96e8fb68ed80dbb258a8b399017d74a4 100644 (file)
@@ -194,7 +194,10 @@ sub check_existing {
 
   my $object = $entry->{object};
 
 
   my $object = $entry->{object};
 
-  $entry->{part} = $self->parts_by->{partnumber}->{ $object->type }->{ $object->partnumber };
+  $entry->{part} = SL::DB::Manager::Part->find_by(
+    SL::DB::Manager::Part->type_filter($object->type),
+    ( partnumber => $object->partnumber )                 x!! $object->partnumber,
+  );
 
   if ($self->settings->{article_number_policy} eq 'update_prices') {
     if ($entry->{part}) {
 
   if ($self->settings->{article_number_policy} eq 'update_prices') {
     if ($entry->{part}) {