STV_TBL_PERM
A tabela STV_TBL_PERM contém informações sobre as tabelas permanentes no Amazon Redshift, incluindo tabelas temporárias criadas por um usuário para a sessão atual. A tabela STV_TBL_PERM contém informações para todas as tabelas em todos os bancos de dados.
Essa tabela é diferente da STV_TBL_TRANS, que contém informações sobre as tabelas transitórias de banco de dados que o sistema cria durante o processamento de consultas.
STV_TBL_PERM é visível somente aos superusuários. Para obter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.
Colunas da tabela
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
slice | inteiro | A fatia do nó alocada para a tabela. |
id | inteiro | ID da tabela. |
name | character(72) | Nome da tabela. |
rows | bigint | O número de linhas de dados em uma fatia. |
sorted_rows | bigint | O número de linhas em uma fatia que já estão classificadas no disco. Se este número não é igual ao número de ROWS, é preciso limpar a tabela para reclassificar as linhas. |
temp | inteiro | Se a mesa é temporária ou não. 0 = false; 1 = true. |
db_id | inteiro | O ID do banco de dados onde a tabela foi criada. |
insert_pristine | inteiro | Para uso interno. |
delete_pristine | inteiro | Para uso interno. |
backup | inteiro | Valor que indica se a tabela está incluída em instantâneos de cluster. 0 = não; 1 = sim. Para obter mais informações, consulte o parâmetro BACKUP para o comando CREATE TABLE. |
dist_style | inteiro | Estilo de distribuição da tabela à qual a fatia pertence. Para obter informações sobre os valores, consulte Visualização dos estilos de distribuição. Para obter informações sobre os estilos de distribuição, consulte Estilos de distribuição. |
block_count | inteiro | Número de blocos usados pela fatia. O valor será -1 quando a contagem de blocos não puder ser calculada. |
Consultas de exemplo
A consulta a seguir retorna uma lista de IDs de tabelas e nomes distintos:
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 ...
As outras tabelas do sistema usam IDs de tabelas e, portanto, saber o ID de uma determinada tabela pode ser muito útil. Neste exemplo, o comando SELECT DISTINCT é usado para remover as duplicatas (as tabelas são distribuídas por diversas fatias).
Para determinar o número de blocos usados por cada coluna na tabela VENUE, digite a seguinte consulta:
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)
Observações de uso
A coluna ROWS inclui a contagem das linhas excluídas que não foram limpadas (ou foram eliminadas mas com a opção de SORT ONLY). Portanto, a soma da coluna ROWS na tabela STV_TBL_PERM pode não ser igual ao resultado de COUNT(*) quando você consulta uma tabela específica diretamente. Por exemplo, se 2 linhas são excluídas da tabela VENUE, o resultado de COUNT(*) é 200, mas o resultado de SUM(ROWS) ainda é 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)
Para sincronizar os dados na tabela STV_TBL_PERM, execute uma limpeza total da tabela 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)