本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
STV_TBL_PERM
STV_ TBL _ 資料PERM表包含 Amazon Redshift 中永久資料表的相關資訊,包括使用者針對目前工作階段建立的暫存資料表。STV_ TBL _ PERM 包含所有數據庫中所有表的信息。
此資料表不同於 STV_TBL_TRANS,它包含系統在查詢處理過程中建立之暫時性資料庫的相關資訊。
STV_ TBL _ PERM 僅對超級用戶可見。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性。
資料表欄
欄名稱 | 資料類型 | 描述 |
---|---|---|
分割 | integer | 配置至資料表的節點分割。 |
id | integer | 表格 ID。 |
name | character(72) | 資料表名稱. |
rows | bigint | 分割中的資料列數。 |
sorted_rows | bigint | 已在磁碟上排序之分割中的資料列數。如果此數字與數ROWS字不匹配,請將表真空吸塵以求助行。 |
temp | integer | 該資料表是否為暫時資料表。0 = false;1 = true。 |
db_id | integer | 用於建立資料表之資料庫的 ID。 |
insert_pristine | integer | 供內部使用。 |
delete_pristine | integer | 供內部使用。 |
backup | integer | 用於指出該資料表是否包含在叢集快照中的值。0 = no;1 = yes。如需詳細資訊,請BACKUP參閱CREATETABLE指令的參數。 |
dist_style | integer | 切片所屬資料表的分散樣式。如需這些值的詳細資訊,請參閱檢視分佈樣式。如需分散樣式的資訊,請參閱分佈樣式。 |
block_count | integer | 分割使用的區塊數目。無法計算區塊計數時,值為 -1。 |
範例查詢
下列查詢會傳回不同資料表IDs和名稱的清單:
select distinct id, name from stv_tbl_perm order by name; id | name --------+------------------------- 100571 | category 100575 | date 100580 | event 100596 | listing 100003 | padb_config_harvest 100612 | sales ...
其他系統表使用 tableIDs,因此知道哪個表 ID 對應於某個表可能非常有用。在此示例中,用SELECTDISTINCT於刪除重複項(表分佈在多個切片中)。
若要判斷資料表中每個資料行所使用的區塊數VENUE目,請輸入下列查詢:
select col, count(*) from stv_blocklist, stv_tbl_perm where stv_blocklist.tbl = stv_tbl_perm.id and stv_blocklist.slice = stv_tbl_perm.slice and stv_tbl_perm.name = 'venue' group by col order by col; col | count -----+------- 0 | 8 1 | 8 2 | 8 3 | 8 4 | 8 5 | 8 6 | 8 7 | 8 (8 rows)
使用須知
該ROWS列包括尚未吸塵(或已吸塵但使用選項)的已刪除行計數。SORT ONLY因此,當您直接查詢給定ROWS資料PERM表時,STVTBL_ _ 資料表中的資料行可能不符合 COUNT (*) 結果。SUM例如,如果從中刪除 2 行VENUE,則COUNT(*)結果為 200,但SUM(ROWS)結果仍然是 202:
delete from venue where venueid in (1,2); select count(*) from venue; count ------- 200 (1 row) select trim(name) tablename, sum(rows) from stv_tbl_perm where name='venue' group by name; tablename | sum -----------+----- venue | 202 (1 row)
要同步 STV _ TBL _ 中的數據PERM,運行全真空VENUE表。
vacuum venue; select trim(name) tablename, sum(rows) from stv_tbl_perm where name='venue' group by name; tablename | sum -----------+----- venue | 200 (1 row)