explain使ってSQLのチューニングしたらいいんじゃないかな
100万件程度なら一瞬で終わる
キャッシュ云々の前にアプローチが間違ってる気がする
PHPとC#、VB.netなら処理速度変わらん

もしSQLの発行回数が2回以上になってるんだったら1回にすればいい
ループごとにSQLを実行するような処理だったら論外

VB.netならフリーのプロファイラが十分使えるからツールでどの箇所が時間かかってるかはすぐわかる

というかその書き方だとすでに原因となる箇所はだいたいわかってるんじゃないだろうか
とにかくループを減らす
VBAで1時間ならVB.netは1秒未満を目指せると思う

型とかアルゴリズム以前にもっと根本的な問題があると思う
そしてどういう問題を処理しようとしているか書かないと一般論しか帰ってこない気がする

速度カイゼンはとにかくループの削減が基本
全探索をなくすのが基本
ソートをなくすのが基本