为什么我在 Amazon Redshift 中的查询计划时间如此高?

1 分钟阅读
0

我在 Amazon Redshift 中的查询计划时间比执行时间长,我不知道为什么。

简短描述

在生产负载上具有独占锁定的查询可能会增加锁定等待时间。此增加会导致您在 Amazon Redshift 中的查询计划时间远远长于实际执行时间。查看工作负载执行明细指标,确认查询计划时间是否突然增加。等待锁定的事务可能会导致时间增加。

解决方法

要检测等待锁定的事务,请完成以下步骤:

  1. 为第一个锁定打开新的会话:

    begin; lock table1;
  2. 打开第二个并行运行的会话,然后运行下列查询:

    select * from table1 limit 1000;

    此第二个会话中的查询将提交 AccessSharedLock 请求。由于第一个会话已申请 AccessExclusiveLock,因此第二个查询必须等待才能访问该锁定。然后,ExclusiveLock 将阻止 table1 上的所有其他操作。

  3. 查看工作负载执行明细指标。查询计划时间突然暴增可以确认有某个事务在等待锁定。

  4. (可选)如果某个事务在等待锁定,请手动终止该会话以释放锁定:

    select pg_terminate_backend(PID);

有关释放锁定的更多信息,请参阅如何在 Amazon Redshift 中检测和释放锁定?

相关信息

分析工作负载性能

查询计划和执行工作流程

AWS 官方
AWS 官方已更新 2 个月前