STL_VACUUM - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

STL_VACUUM

顯示已清空之資料表的資料列和區塊統計資訊。

此檢視顯示每個清空操作啟動和完成時特有的資訊,並示範執行此操作的優點。如需執行此命令之需求的相關資訊,請參閱 VACUUM 命令說明。

STL只有超級使用者可以看到 _VACUUM。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性

此表格中的部分或全部資料也可以在SYS監控檢視 中找到SYS_VACUUM_HISTORY。SYS 監控檢視中的資料已格式化,以便於使用和理解。建議您針對查詢使用SYS監控檢視。

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目的使用者之 ID。
xid bigint VACUUM 陳述式的交易 ID。您可以將此資料表加入 STL_QUERY 檢視,以查看為指定VACUUM交易執行的個別SQL陳述式。如果清空整個資料庫,則會清空個別交易中的每個資料表。
table_id integer 資料表 ID。
status character(30)

每個資料表VACUUM的操作狀態。可能的值如下:

  • Started

  • Started Delete Only

  • Started Delete Only (Sorted >= nn%)

    僅啟動VACUUM了 的刪除階段FULL。已略過排序階段,因為排序的資料表已達或超過排序閾值。

  • Started Sort Only

  • Started Ranged Partition

  • Started Reindex

  • Finished

    已對資料表完成操作的時間。若要了解清空作業已對特定資料表花費了多長時間,請從特定交易 ID 和資料表 ID 的完成時間中減去啟動時間。

  • Skipped

    已略過資料表,因為已完全排序資料表,而且未標示任何資料列進行刪除。

  • Skipped (delete only)

    資料表已略過,因為 DELETEONLY已指定,而且沒有資料列標記為刪除。

  • Skipped (sort only)

    資料表已略過,因為 SORT ONLY 已指定,且資料表已完全排序。

  • Skipped (sort only, sorted>=xx%)

    資料表已略過,因為 SORT ONLY 已指定,且資料表已按排序閾值或高於排序閾值排序。

  • Skipped (0 rows)

    已略過資料表,因為它是空的。

  • VacuumBG

    自動清空操作會在背景執行。當其他狀態自動執行時,此狀態會附加在其他狀態之前。例如,自動執行的僅刪除清空將具有狀態 [VacuumBG] Started Delete Only 的起始列。

如需VACUUM排序閾值設定的詳細資訊,請參閱 VACUUM

rows bigint 資料表中的實際資料列數目加上任何仍在磁碟上儲存的已刪除資料列 (等待清空)。此欄顯示在對狀態為 Started 的資料列啟動清空之前的計數,以及在對狀態為 Finished 的資料列啟動清空之後的計數。
sortedrows integer 資料表中已排序的資料列數目。此欄顯示在對 Status 欄中具有 Started 的資料列啟動清空之前的計數,以及在對 Status 欄中具有 Finished 的資料列啟動清空之後的計數。
blocks integer 在清空操作 (狀態為 Started 的資料列) 之前,以及在清空操作 (Finished 欄) 之後,用來儲存資料表資料的資料區塊總數。每個資料區塊都使用 1 MB。
max_merge_partitions integer 會使用此欄位來分析表現並表示分割區數上限,也就是清空可以根據合併階段反覆運算為資料表處理的分割區數上限。(清空會將未排序的區域排序為一個或多個已排序的分割區。根據資料表中的欄數和目前的 Amazon Redshift 組態,合併階段可以在單次合併迭代中處理最大數量的分割區。如果排序分割區的數量超過合併分割區的最大數量,合併階段仍然有效,但需要更多的合併迭代。)
eventtime timestamp 清空操作啟動或完成的時間。
reclaimable_rows bigint 目前 cutoff_xid 的可回收列數。此欄顯示 Redshift 在清空開始之前對於具有 Started 狀態之列的估計可回收列數,以及在清空之後對於具有 Finished 狀態之列剩餘的實際可回收列數。
reclaimable_space_mb bigint 目前 cutoff_xid 的可回收空間 (以 MB 為單位)。此欄顯示 Redshift 在清空開始之前對於具有 Started 狀態之列的估計可回收空間量,以及在清空之後對於具有 Finished 狀態之列剩餘的實際可回收空間量。
cutoff_xid bigint VACUUM 操作的截止交易 ID。截止後的任何交易都不會包含在VACUUM操作中。
is_recluster integer 如果為 1 (true),VACUUM操作會執行叢集演算法,如果為 0 (false),則不是。

範例查詢

下列查詢報告資料表 108313 的清空統計資訊。在一系列插入和刪除之後已清空此資料表。

select xid, table_id, status, rows, sortedrows, blocks, eventtime, reclaimable_rows, reclaimable_space_mb from stl_vacuum where table_id=108313 order by eventtime; xid | table_id | status | rows | sortedrows | blocks | eventtime | reclaimable_rows | reclaimable_space_mb -------+----------+-------------------------+------+------------+--------+----------------------+------------------+---------------------- 14294 | 108313 | Started | 1950 | 408 | 28 | 2016-05-19 17:36:01 | 984 | 17 14294 | 108313 | Finished | 966 | 966 | 11 | 2016-05-19 18:26:13 | 0 | 0 15126 | 108313 | Skipped(sorted>=95%) | 966 | 966 | 11 | 2016-05-19 18:26:38 | 0 | 0

在 開始時VACUUM,資料表包含存放在 28 個 1 MB 區塊中的 1,950 列。Amazon Redshift 估計,透過清空操作可以回收 984 個磁碟空間,即 17 個磁碟空間區塊。

在完成狀態的 列中,資料ROWS欄會顯示 966 的值,資料BLOCKS欄值為 11,從 28 下降。清空回收了估計的磁碟空間量,清空操作完成後沒有剩餘可回收的列或空間。

在排序階段 (交易 15126) 中,清空能夠略過資料表,因為已依排序索引鍵順序插入資料列。

下列範例顯示大型INSERT操作後SALES資料表 (此範例中的資料表 110116) 上的SORTONLY真空統計資料:

vacuum sort only sales; select xid, table_id, status, rows, sortedrows, blocks, eventtime from stl_vacuum order by xid, table_id, eventtime; xid |table_id| status | rows |sortedrows|blocks| eventtime ----+--------+-----------------+-------+----------+------+-------------------- ... 2925| 110116 |Started Sort Only|1379648| 172456 | 132 | 2011-02-24 16:25:21... 2925| 110116 |Finished |1379648| 1379648 | 132 | 2011-02-24 16:26:28...