STV_TBL_PERM - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

STV_TBL_PERM

La tabella STV_TBL_PERM contiene informazioni sulle tabelle permanenti in Amazon Redshift, incluse le tabelle temporanee create da un utente per la sessione corrente. STV_TBL_PERM contiene informazioni per tutte le tabelle in tutti i database.

Questa tabella differisce da STV_TBL_TRANS, che contiene informazioni sulle tabelle di database transitorie che il sistema crea durante l'elaborazione della query.

STV_TBL_PERM è visibile solo per agli utenti con privilegi avanzati. Per ulteriori informazioni, consultare Visibilità dei dati nelle tabelle e nelle viste di sistema.

Colonne di tabella

Nome colonna Tipo di dati Descrizione
sezione integer Sezione di nodo allocata alla tabella.
id integer ID tabella.
nome character(72) Nome tabella.
righe bigint Numero di righe di dati nella sezione.
sorted_rows bigint Numero di righe nella sezione che sono già ordinate sul disco. Se questo numero non corrisponde al numero ROWS, eseguire un vacuum della tabella per riordinare le righe.
temp integer Indica se la tabella è una tabella temporanea. 0 = false; 1 = true.
db_id integer ID del database in cui è stata creata la tabella.
insert_pristine integer Per uso interno.
delete_pristine integer Per uso interno.
backup integer Valore che indica se la tabella è inclusa negli snapshot del cluster. 0 = no; 1 = yes. Per ulteriori informazioni, consultare il parametro BACKUP per il comando CREATE TABLE.
dist_style integer Stile di distribuzione della tabella a cui appartiene la sezione. Per ulteriori informazioni sui valori, consulta Visualizzazione degli stili di distribuzione. Per ulteriori informazioni sugli stili di distribuzione, consulta Stili di distribuzione.
block_count integer Numero di blocchi utilizzati dalla sezione. Il valore è -1 quando non è possibile calcolare il numero di blocchi.

Query di esempio

La seguente query restituisce un elenco di tabelle IDs e nomi distinti:

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

Altre tabelle di sistema utilizzano la tabella IDs, quindi sapere quale ID di tabella corrisponde a una determinata tabella può essere molto utile. In questo esempio, SELECT DISTINCT viene utilizzata per rimuovere i duplicati (le tabelle sono distribuite tra più sezioni).

Per determinare il numero di blocchi utilizzati da ogni colonna nella tabella VENUE, digita la query seguente:

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)

Note per l'utilizzo

La colonna ROWS include il numero di righe eliminate che non sono state sottoposte a vacuum (o che lo sono state ma con l'opzione SORT ONLY). Di conseguenza, la SUM della colonna ROWS nella tabella STV_TBL_PERM potrebbe non corrispondere al risultato COUNT(*) quando esegui direttamente una query su una determinata tabella. Ad esempio, se 2 righe sono eliminate da VENUE, il risultato COUNT(*) è 200 ma il risultato SUM(ROWS) è ancora 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)

Per sincronizzare i dati in STV_TBL_PERM, esegui un vacuum completo della tabella 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)