Sometimes tables are the best solution, sometimes files are the best solution, sometimes OO is the best solution, sometimes functional programming is the best solution, etc.
Glad to some you come to your senses. Most of the time, we don't have the luxury to just pick one - we have to build solutions that represent a compromise betwee performance and abstraction. You don't want to design all your code based on performance alone, but neither can you afford to ignore it totally.

Most of the business applications I deal with, will use files, tables, objects, and, more recently, first class functions. Each has their usage and the secret to success is usually getting them to work together.