MS SQL 开发人员在这里涉足 iSeries DB2。
我被要求重新编写一些需要永远运行的报表 SQL 查询,它们非常庞大,连接了数十个表等。
但是,当我使用典型的 MS SQL 优化步骤(例如用连接替换 NOT EXISTS)来处理它时,我最初并没有看到任何改进。我应该打扰还是优化器正在处理类似的明显事情?
MS SQL 开发人员在这里涉足 iSeries DB2。
我被要求重新编写一些需要永远运行的报表 SQL 查询,它们非常庞大,连接了数十个表等。
但是,当我使用典型的 MS SQL 优化步骤(例如用连接替换 NOT EXISTS)来处理它时,我最初并没有看到任何改进。我应该打扰还是优化器正在处理类似的明显事情?
DB/2 与 MS SQL 完全不同,我不希望许多手动优化会产生相同的影响。
有许多与 DB/2 性能和优化相关的因素。我建议从有关使用查询优化工具优化查询性能的文档开始。
例如,通过Visual Explain运行查询应该会提供更清晰的答案。
也许最明显的检查是确保您的连接具有良好的索引。如果没有,则创建它们。索引对 DB2 for i 的性能影响要小得多。