本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
STL_TR_CONFLICT
顯示資訊以識別並解決交易與資料庫資料表的衝突。
當兩個以上使用者正在查詢和修改資料表中的資料列,以致其交易無法序列化時,即會發生交易衝突。交易若執行將中斷序列化的陳述式,其會遭到停止並進行復原。每次發生交易衝突時,Amazon Redshift 都會將資料列寫入 STL_TR_CONFLICT 系統資料表,其中包含已取消交易的詳細資訊。如需詳細資訊,請參閱可序列化隔離。
STL_TR_CONFLICT 僅供超級使用者檢視。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性。
此表格中的部分或全部資料也可以在SYS監控檢視 中找到SYS_TRANSACTION_HISTORY。SYS 監控檢視中的資料已格式化,以便於使用和理解。建議您針對查詢使用SYS監控檢視。
資料表欄
欄名稱 | 資料類型 | 描述 |
---|---|---|
xact_id | bigint | 已復原之交易的交易 ID。 |
process_id | bigint | 與已復原之交易相關聯的處理程序。 |
xact_start_ts | timestamp | 交易開始時的時間戳記 (UTC)。 |
abort_time | timestamp | 交易停止時的時間戳記 (UTC)。 |
table_id | bigint | 發生衝突之資料表的資料表 ID。 |
範例查詢
若要傳回涉及特定資料表之衝突的相關資訊,請執行一個指定資料表 ID 的查詢:
select * from stl_tr_conflict where table_id=100234 order by xact_start_ts; xact_id|process_| xact_start_ts | abort_time |table_ |id | | |id -------+--------+--------------------------+--------------------------+------ 1876 | 8551 |2010-03-30 09:19:15.852326|2010-03-30 09:20:17.582499|100234 1928 | 15034 |2010-03-30 13:20:00.636045|2010-03-30 13:20:47.766817|100234 1991 | 23753 |2010-04-01 13:05:01.220059|2010-04-01 13:06:06.94098 |100234 2002 | 23679 |2010-04-01 13:17:05.173473|2010-04-01 13:18:27.898655|100234 (4 rows)
您可以從 錯誤訊息的 DETAIL區段取得資料表 ID,以解決序列化違規 (錯誤 1023)。