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)