STL_VACUUM - Amazon Redshift

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

STL_VACUUM

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

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

僅有超級使用者才看得到此視圖。如需詳細資訊,請參閱 系統資料表和檢視中資料的可見性

資料表欄位

資料欄名稱 資料類型 描述
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 Reindex

  • Finished

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

  • Skipped

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

  • Skipped (delete only)

    已略過資料表,因為已指定 DELETE ONLY,而且未標示任何資料列進行刪除。

  • Skipped (sort only)

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

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

    已略過資料表,因為已指定 SORT ONLY,而且排序的資料表已達或超過排序閾值。

  • Skipped (0 rows).

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

  • VacuumBG.

    自動清空操作會在背景執行。

如需 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 清空操作啟動或完成的時間。

範例查詢

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

select xid, table_id, status, rows, sortedrows, blocks, eventtime from stl_vacuum where table_id=108313 order by eventtime; xid | table_id | status | rows | sortedrows | blocks | eventtime -------+----------+----------------------+------------+------------+--------+--------------------- 14294 | 108313 | Started | 1950266199 | 400043488 | 280887 | 2016-05-19 17:36:01 14294 | 108313 | Finished | 600099388 | 600099388 | 88978 | 2016-05-19 18:26:13 15126 | 108313 | Skipped(sorted>=95%) | 600099388 | 600099388 | 88978 | 2016-05-19 18:26:38

啟動 VACUUM 時,資料表包含了 1,950,266,199 個存放在 280,887 個 1 MB 區塊中的資料列。在刪除階段 (交易 14294) 完成時,清空回收了已刪除之資料列的空間。ROWS 欄顯示 400,043,488 一值,而 BLOCKS 欄已從 280,887 下降至 88,978。清空回收了磁碟空間的 191,909 個區塊 (191.9 GB)。

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

下列範例會在大型 INSERT 操作之後顯示 SALES 資料表 (此範例中的資料表 110116) 上 SORT ONLY 清空的統計資訊:

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...