通常最好把所有必要的筛选逻辑都作为谓词写在SQL语句中。不要漏掉某些谓词,让数据库管理器获取多余的行,然后再通过程序逻辑检查来消除/避开这些多余的数据行(有些人把这称为Stage 3处理)。
首先要把所有逻辑和筛选谓词放在SQL语句中,以获取应用所需要的那些数据行——重申一句,只是应用实际需要的那些行。应当利用数据库管理器引擎的强大能力来完成筛选工作。只有当性能出现问题,而且所有其他办法都不奏效时才可以考虑利用应用代码完成筛选。
在使用一个DB2卸载工具将数据表转储到平面文件中,并由一个程序使用这个文件来处理数据时,也可以采用这种方法。不过要把这作为最后一道防线,只有当所有其他调优手段都无效时才考虑这样做。