0
В таблице sql есть 100 записей, используя хеш с ключами. Я могу обрабатывать все записи успешно и сгенерированный вывод. Возможно, в таблице sql могут быть миллионы записей .will все значения хранятся в хеше. без использования хэшей есть другой способ обработки всех записей.альтернативный метод для хэша в perl
my %summaryhash;
my $Attrdaysql = qq{select PACKAGEID, STATUS, sum(NUMDAYSACTIVE)
from table
group by PACKAGEID,STATUS};
# Compile the statement.
my $Attrdays_Query = $DB->prepare($Attrdaysql) or niceExit(1,$DB->errstr);
# Execute the statement.
$Attrdays_Query->execute() or niceExit(1,$DB->errstr);
while(my ($packageId,$status,$attrdays) = $Attrdays_Query->fetchrow_array())
{
my $sim;
$summaryhash{ SIM } = $sim;
$summaryhash{ $sim }{ $packageId }{ package_id } = $packageId;
if ($status eq "ACTIVE")
{
$summaryhash{ $sim }{ $packageId }{ activeDays } = $attrdays;
}
elsif ($status eq "SUSPEND")
{
$summaryhash{ $sim }{ $packageId }{ suspendDays } = $attrdays;
}
}
Вопрос _why_ вы хранить все записи внутри хэш, и возможный ответ заключается в использовании запроса, который будет выполнять статистические вычисления внутри базы данных. –
Потому что мне нужно показать все дни «Активные» и «Приостановить» на основе идентификатора PackageID. – user2992741
Почему вы не упорядочиваете свой запрос до желаемого результата с помощью «order by» и вместо хранения всего в памяти печатаете/сохраняете/отправляете их по очереди? –