我一直在通过索引和集群对我的 SQL 查询进行一些基本的优化,但遇到了一个奇怪的问题。我的大多数查询的成本从数百到数千不等,我为它们添加了索引,从而降低了它们的成本。
但是,我的一些查询的成本已经很低,通常是个位数。我可以忘记这些吗?仍然值得优化这些查询还是我不应该付出努力?
基本上,我想知道是否有一个通用范围或指标可以用来确定是否应该进一步优化查询。如果我应该根据具体情况确定这一点,那么在决定要优化哪些查询时使用一些指导方针会很有帮助。
简单的答案是,如果执行次数使低成本查询变得如此重要,那么低成本查询就很重要。
棘手的部分是低估计成本可能并不意味着低执行成本——这同样适用于高成本查询。
我肯定会查看 AWR 或 Statspack 报告以了解您最重要的查询是什么,并应用您自己的常识来判断执行计划是否看起来最适合查询的目的。
没有严格的指导方针。您可能希望获得有关查询持续多长时间和执行次数的统计信息。还取决于查询的重要性(是针对实时数据还是针对运行单个报告)。
如果查询需要 10 秒但每天执行 1 次,那么您可能不需要优化它。
如果查询需要 1 秒但每天执行 10000 次,那么您可能需要对其进行优化。