STV_TBL_PERM - Amazon Redshift

STV_TBL_PERM

La tabla STV_TBL_PERM tiene información acerca de las tablas permanentes en Amazon Redshift, incluidas las tablas temporales creadas por un usuario para esta sesión. STV_TBL_PERM tiene información de todas las tablas en todas las bases de datos.

Esta tabla se diferencia de STV_TBL_TRANS, la cual tiene información relacionada con las tablas transitorias de bases de datos que el sistema crea durante el procesamiento de consultas.

Solo los superusuarios pueden ver STV_TBL_PERM. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
slice integer Sector del nodo asignado a la tabla.
id integer ID de la tabla.
name character (72) Nombre de la tabla.
rows bigint Cantidad de fila de datos en el sector.
sorted_rows bigint Cantidad de filas en el sector que ya están ordenadas en el disco. Si esta cantidad no coincide con la cantidad indicada en ROWS, limpie la tabla para volver a ordenar las filas.
temp integer Indica si es una tabla temporal o no: 0 = false; 1 = true.
db_id integer ID de la base de datos donde se crea la tabla.
insert_pristine integer Para uso interno.
delete_pristine integer Para uso interno.
backup integer Valor que indica si la tabla se incluye en las instantáneas del clúster: 0 = no; 1 = sí. Para obtener más información, consulte el parámetro BACKUP del comando CREATE TABLE.
dist_style integer Estilo de distribución de la tabla a la que pertenece el segmento. Para obtener más información acerca de los valores, consulte Visualización de los estilos de distribución. Para obtener más información acerca de los estilos de distribución, consulte Estilos de distribución.
block_count integer Número de bloques que utiliza el segmento. El valor es -1 cuando no se puede calcular el número de bloques.

Consultas de ejemplo

La siguiente consulta devuelve una lista de diferentes ID y nombres de tablas:

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

Otras tablas de sistema usan ID de tablas, por lo que puede resultar muy útil saber qué ID de tabla corresponde a una tabla determinada. En este ejemplo, se utiliza el comando SELECT DISTINCT para eliminar duplicados (las tablas se distribuyen en diferente sectores).

Para determinar la cantidad de bloques que utiliza cada columna de la tabla VENUE, escriba la siguiente 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)

Notas de uso

La columna ROWS incluye los recuentos de las filas eliminadas que no se limpiaron (o que se limpiaron, pero con la opción SORT ONLY). Por lo tanto, es posible que el resultado de SUM de la columna ROWS en la tabla STV_TBL_PERM no coincida con el resultado de COUNT(*) cuando consulta directamente una tabla determinada. Por ejemplo, si se eliminan 2 filas de VENUE, el resultado de COUNT(*) es 200, pero el resultado de SUM(ROWS) sigue siendo 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 los datos en STV_TBL_PERM, ejecute una limpieza completa en la tabla 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)