本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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的操作狀態。可能的值如下:
如需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...