文档首页 > > 开发指南> 优化查询性能> SQL执行troubleshooting> 分析查询效率异常降低的问题

分析查询效率异常降低的问题

分享
更新时间: 2019/06/24 09:14

通常在几十毫秒内完成的查询,有时会突然需要几秒的时间完成;而通常需要几秒完成的查询,有时需要半小时才能完成。如何分析这种查询效率异常降低的问题呢?

操作步骤

通过下列的操作步骤,可以分析出查询效率异常降低的原因。

  1. 使用analyze命令分析数据库。

    analyze命令更新所有表中数据大小以及属性等相关统计信息,该命令较为轻量级,可以经常执行。如果此命令执行后性能恢复或者有所提升,则表明autovacuum未能很好的完成它的工作,有待进一步分析。

  2. 检查查询语句是否返回了多余的数据信息。

    例如,如果查询语句先查询一个表中所有的记录,而只用到结果中的前10条记录。对于包含50条记录的表,查询起来是很快的;但是,当表中包含的记录达到50000,查询效率将会有所下降。

    若业务应用中存在只需要部分数据信息,但是查询语句却是返回所有信息的情况,建议修改查询语句,增加LIMIT子句来限制返回的记录数。这样至少使数据库优化器有了一定的优化空间,一定程度上会提升查询效率。

  3. 检查查询语句单独运行时是否仍然较慢。

    尝试在数据库没有其他查询或查询较少的时候运行查询语句,并观察运行效率。如果效率较高,则说明可能是由于之前运行数据库系统的主机负载过大导致查询低效。此外,还可能是由于执行计划比较低效,但是由于主机硬件较快使得查询效率较高。

  4. 检查重复相同查询语句的执行效率。

    查询效率低的一个重要原因是查询所需信息没有缓存在内存中,这可能是由于内存资源紧张,缓存信息被其他查询处理覆盖。

    重复执行相同的查询语句,如果后续执行的查询语句效率提升,则可能是由于上述原因导致。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区