為什麼我在 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 個月前