STV_TBL_PERM - Amazon Redshift

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)