From d0d701b89a590bb003b490322d45ea0001d8e966 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Tue, 31 Jul 2012 14:43:30 +0200 Subject: [PATCH] Warenimport bei grossen Datenbanken. 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 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SL/Controller/CsvImport/Part.pm b/SL/Controller/CsvImport/Part.pm index 387bdb5f2..6c056d0f9 100644 --- a/SL/Controller/CsvImport/Part.pm +++ b/SL/Controller/CsvImport/Part.pm @@ -194,7 +194,10 @@ sub check_existing { 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}) { -- 2.20.1