Вероятно, лучшее повышение производительности, которое вы можете получить, это устранение доступа к БД (даже если это не выглядит важным, как правило, узким местом является ввод-вывод, а не сам язык). Если возможно, получите данные заранее и сохраните их в конце, вместо того, чтобы получать доступ каждые 5 секунд.
Также, как указывалось другими, измените алгоритм, если это возможно, поскольку перенос кода на .NET, вероятно, принесет вам лишь небольшую производительность преимущества.
Но если вы измените его на .NET 4.0, возможно, вы сможете использовать параллельные расширения и по-настоящему получить импульс, используя несколько ядер. http://msdn.microsoft.com/en-us/library/dd460693.aspx, но это также означает изменение алгоритма
Надеюсь, это поможет. ; -)