STV_RECENTS - Amazon Redshift

STV_RECENTS

Utilice la tabla STV_RECENTS para obtener información acerca de las consultas que están activas actualmente y las que se han ejecutado recientemente en relación con una base de datos.

Todos los usuarios pueden ver STV_RECENTS. Los superusuarios pueden ver todas las filas; los usuarios normales solo pueden ver sus datos. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Algunos o todos los datos de esta tabla también están en la vista de monitoreo SYS SYS_QUERY_HISTORY. Los datos de la vista de monitoreo SYS están formateados para que sean más fáciles de usar y entender. Se recomienda utilizar la vista de monitoreo SYS para las consultas.

Solución de problemas con STV_RECENTS

STV_RECENTS es útil, en concreto, para determinar si una consulta o una colección de consultas se está ejecutando en ese momento o se ha realizado. También muestra el tiempo que se ha estado ejecutando una consulta. Esto es útil para hacerse una idea de qué consultas son de larga duración.

Puede unir STV_RECENTS a otras vistas del sistema, como STV_INFLIGHT, para recopilar metadatos adicionales sobre las consultas en ejecución. (Hay un ejemplo que muestra cómo hacerlo en la sección de consultas de ejemplo). También puede utilizar los registros devueltos desde esta vista junto con las características de monitoreo de la consola de Amazon Redshift para solucionar problemas en tiempo real.

Las vistas del sistema que complementan STV_RECENTS incluyen STL_QUERYTEXT, que recupera el texto de consulta para los comandos SQL, y SVV_QUERY_INFLIGHT, que une STV_INFLIGHT a STL_QUERYTEXT.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
userid integer ID del usuario que generó la entrada.
estado character(20) Estado de la consulta. Los valores válidos son Running y Done.
starttime Marca de tiempo La hora en que comenzó la consulta.
duration integer Cantidad de microsegundos desde que comenzó la sesión.
user_name character (50) Nombre de usuario que ejecutó el proceso.
db_name character (50) Nombre de la base de datos.
consulta character(600) Texto de la consulta, de hasta 600 caracteres. Todo carácter adicional se trunca.
pid integer ID de proceso para la sesión asociada con la consulta, que siempre es -1 para las consultas que se han completado.

Consultas de ejemplo

Para determinar cuáles son las consultas que se están ejecutando actualmente en la base de datos, ejecute la siguiente consulta:

select user_name, db_name, pid, query from stv_recents where status = 'Running';

En el siguiente ejemplo de salida, se muestra que hay una única consulta en ejecución en la base de datos TICKIT:

user_name | db_name | pid | query ----------+---------+---------+------------- dwuser | tickit | 19996 |select venuename, venueseats from venue where venueseats > 50000 order by venueseats desc;

En el siguiente ejemplo, se devuelve una lista de consultas (en caso de haber alguna) que se están ejecutando o que están esperando en una cola para ejecutarse:

select * from stv_recents where status<>'Done'; status | starttime | duration |user_name|db_name| query | pid -------+---------------------+----------+---------+-------+-----------+------ Running| 2010-04-21 16:11... | 281566454| dwuser |tickit | select ...| 23347

Esta consulta no devuelve resultados a menos que esté ejecutando una serie de consultas simultáneas y algunas estén en una cola.

En el siguiente ejemplo, se amplía el ejemplo anterior. En este caso, las consultas que están realmente "en tránsito" (ejecutándose, no esperando) no están incluidas en el resultado:

select * from stv_recents where status<>'Done' and pid not in (select pid from stv_inflight); ...

Para obtener más consejos sobre la resolución de problemas de rendimiento de las consultas, consulte Solución de problemas de consultas.