DBIについて質問です。

膨大な数のレコードを呼び出してwhile等のループで処理をしたいのですが

$sth = $dbh->prepare("select文");
$sth->execute();

とすると、スワップまで食いつぶされてしまいます。

ファイルでいうところの↓のような感じでメモリを消費せずに処理できる方法はないでしょうか?

foreach(<IN>){
 print;
}