我在 Amazon Redshift 中的查詢規劃時間比執行時間更長,但不確定原因。
如果生產負載上存在具有專屬鎖定的查詢,鎖定等待時間可能會增加。這會導致您在 Amazon Redshift 中的查詢規劃時間比實際執行時間要長得多。請檢查工作負載執行明細指標,以查看查詢規劃時間是否突然增加。此時間的增加可能是因某個等待鎖定的交易導致的。
若要偵測等待鎖定的交易,請完成下列步驟:
為您的第一個鎖定開啟新的工作階段:
begin; lock table1;
開啟第二個平行執行的工作階段,然後執行下列查詢:
select * from table1 limit 1000;
此第二個工作階段中的查詢將提交 AccessSharedLock 請求。由於第一個工作階段已宣告 AccessExclusiveLock,因此第二個查詢必須等待存取此鎖定。然後,ExclusiveLock 會封鎖 table1 上的所有其他操作。
檢查您的工作負載執行明細指標。查詢規劃時間突然激增可以確認有交易正在等待鎖定。
(選用) 如果確實存在等待鎖定的交易,請手動終止工作階段以釋放鎖定:
select pg_terminate_backend(PID);
如需有關釋放鎖定的詳細資訊,請參閱如何在 Amazon Redshift 中偵測和釋放鎖定?
分析工作負載效能
查詢規劃和執行工作流程